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

时间:2014-06-17 13:14:26

标签: c++ string parsing floating-point

假设我们有一个字符串:

14.6527 39.5652 -344.226 -3.34672

我们称这个字符串为str_line

我的问题是,我们如何将其解析为浮点数组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);
}

2 个答案:

答案 0 :(得分:7)

您应该声明stringstream对象ss一次,不要循环播放。

然后你必须只使用运算符>>从流中提取浮点数。

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

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

答案 1 :(得分:1)

使用>>上的stringstream运算符:

ss >> data[i];