从CSV C ++中提取double值时出现意外结果

时间:2017-01-24 08:24:18

标签: c++ qt csv ubuntu

使用C ++ Qt读取.csv文件时遇到问题。这是CSV格式:

0.2345;0.567;1.2456;...

这是读取CSV文件的代码:

void CSV::readCSV(std::istream &input, std::vector<double> &output) {
  std::string csvElement;
  while (std::getline(input, csvElement, ';')) {
    output.push_back(stod(csvElement));
  }
}

输出:

0.0000 0.0000 1.0000

输出错误。你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

我怀疑你的代码中某处你正在将值转换为某种整数类型,然后将它们打印出来或转换回双打。类似于:

std::cout << std::fixed << std::setprecision(4);
for (auto el : vec){
    int i = el;
    double d = i;
    std::cout << "Double: " << el << " Integer: " << i << " Double again: " << d << std::endl;
}