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

标签 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

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

最佳答案

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

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;
}

关于c++ - 从 CSV C++ 中提取 double 值时出现意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41823266/

相关文章:

qt - 在 Maemo 中将窗口置于前面

c++ - QT 中的 SIGNAL 和 SLOT 参数问题

c++ - 使用Doxygen记录枚举类值而不启用EXTRACT_ALL

C++ DLL 不加载调试符号

c++ - 如何使用 QNetworkAccessManager 发送 DELETE 请求?

csv - 从 FTP 文件夹获取最新更新的文件

r - 保存在 R 中的 CSV 顺序

linux - 清理 CSV(工件和缺少间距)

c++ - 两个日志行与 c++ 中的 log4Cxx 混合

c++ - 字符串比较