假设我们有一个字符串:
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);
}
答案 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];