getline() 関数で抽出した文字列から int や double などの数値を抽出する方法を考えるのに苦労しています。
//例:
string data = "";
fstream inFile;
//ファイルの内容:
"Hello today is 83.3 degrees Fahrenheit."
// getline 関数を使用する
getline(inFile, data);
// 文字列データから数値を取り出す
ありがとうございました
getline() 関数で抽出した文字列から int や double などの数値を抽出する方法を考えるのに苦労しています。
//例:
string data = "";
fstream inFile;
//ファイルの内容:
"Hello today is 83.3 degrees Fahrenheit."
// getline 関数を使用する
getline(inFile, data);
// 文字列データから数値を取り出す
ありがとうございました
cstdioを含める準備ができている場合は、sscanfを使用できます。
次のマニュアルページのリンクが役立ちます。-
http://linux.die.net/man/3/sscanf
例
char foo[] = "foo bar 12 baz";
int qux;
sscanf(foo, "foo bar %d baz", &qux);
// qux will be assigned 12
また
char foo[] = "foo bar 12.5 baz";
double qux;
sscanf(foo, "foo bar %lf baz", &qux);
// qux will be assigned 12.5
明らかに、これをシナリオに合わせて調整し、さまざまな安全上の問題を考慮する必要があります。
次のことを行うことができます
getline(inFile, data);
std::istringstream iss;
iss.exceptions(std::istream::failbit | std::istream::badbit );
iss.str(data);
double dTemp = 0;
while( iss.good() ){
try{
iss >> dTemp;
}
catch(std::istream::failure &e ){
/* Do your error check over here */
}
}
また、C++ についてもっと読みたくなるでしょう。このリンクを確認してください
お役に立てれば。