c++ - 为什么 std::stringstream 没有在此代码中打印正确的数字?
问题描述
所以,这很新。在我抓住它并将其放入向量之后,我试图将文本文件的输入从字符串更改为双精度。我想对这些数字执行数学运算,并且在我从字符串转换为双精度后,其中一些数字缺少一两个数字。(文件从 doc 转换为 txt,因为我不知道如何访问 doc 文件,如果这是错误的,请告诉我)。我会在这个问题中包含 txt 文件,但我不知道如何。所以如果有必要,请告诉我如何。随意批评代码,总是愿意学习。我需要它。:)
这些数字采用这种精确的格式 -> 0.00000 并且其中一些在转换后以 0.0000 或 0.000 的形式出现
int main()
{
std::string lines;
std::vector <std::string> numbers{};
std::vector <double> dbnumbers{};
std::ifstream myfile("data.txt");
while (myfile >> lines)
{
numbers.push_back(lines);
}
for (int i = 0; i < numbers.size(); ++i)
{
std::string tempstring;
tempstring = numbers[i];
std::stringstream tempd(tempstring);
double line{};
tempd >> line;
dbnumbers.push_back(line);
}
for (auto element : numbers) std::cout << element << " / ";
for (auto element2 : dbnumbers) std::cout << element2 << " / ";
return 0;
}
解决方案
没有您的输入数据很难判断,但您std::cout
可能需要std::setprecision
增加要打印的位数。
推荐阅读
- google-cloud-firestore - 如果“没有任何规则的 1 个月”已过期,我是否必须开始一个新项目?
- android - 从 viewpager 2 停止并释放 exoplayer
- javascript - 如何在一个页面中多次重用一段Javascript
- r - Plotly:如何制作灰度饼图?
- python - Django readonly_fields 不显示数据
- python - pyspark 查询和 sql pyspark 查询
- machine-learning - 在机器学习中使用 CNN 将图像特征和数字特征结合在一起的最佳方法是什么?
- javascript - 将 promise 与 while 循环一起使用会导致 ui 冻结
- java - 控制器中的 Spring Boot 自定义查询
- html - 我的网格不会将元素放在中间