C++:从字符串浮点数中获取单个浮点值

sla*_*can 2 c++ string floating-point parsing

假设我们有一个字符串:

14.6527 39.5652 -344.226 -3.34672

我们叫这个字符串吧str_line.

我的问题是,我们如何将其解析为float数组,float data[4].

我尝试使用来自stringstream的getline但无济于事(请参阅下面的代码表示).任何帮助,将不胜感激 :)

for(int i=0;i<4;i++){
  stringstream ss(str_line);
  ss.getline( str_line, 8, ' ' );
  data[i]=atof(ss);
}
Run Code Online (Sandbox Code Playgroud)

cia*_*mej 7

你应该声明一次stringstream对象ss,不要循环.

然后,您必须仅使用运算符>>从流中提取浮点数.

stringstream ss(str_line);
for(int i=0;i<4;i++){
  ss >> data[i];
}
Run Code Online (Sandbox Code Playgroud)

如果您正在读取文件,则可以使用类似的文件流ifstream并直接从中读取浮点数.流将忽略任何空格,包括换行符.