假设我们有一个字符串行:
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);
}
最佳答案
你应该声明stringstream
对象ss
一次,不要在循环中做。
然后您只需使用运算符 >>>
从流中提取 float 。
stringstream ss(str_line);
for(int i=0;i<4;i++){
ss >> data[i];
}
如果您正在从文件中读取数据,您可以使用像 ifstream
这样的文件流并直接从中读取 float 。流将忽略任何空格,包括换行符。
关于C++:从一串 float 中获取单个浮点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24264839/