C++:从一串 float 中获取单个浮点值

标签 c++ string parsing floating-point

假设我们有一个字符串行:

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/

相关文章:

c++ - 连接字符串的意外问题

编译打印字符串函数给出错误信息 - C

parsing - 为什么右递归语法不适合自下而上的 LR(k) 解析?

parsing - 我应该在哪里划清词法分析器和解析器之间的界限?

c++ - 通过示例学习指针

c++ - 为什么我不能 std::move std::unique_ptrs between std::sets?

java - 将声音文件链接到字符串值

c++ - 如何计算具有 n 位小数的 float

C++ 大 vector 搜索项

javascript - parseInt() 和 parseFloat() 之间的行为差​​异