我很难想出一种方法来从 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);
// 从字符串数据中提取数字
谢谢你
您可以执行以下操作
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++ 的信息。检查此链接
希望这可以帮助。
如果您准备包含 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
您显然需要根据您的情况对其进行调整,并考虑各种安全问题。