我正在使用一个项目,但我找不到将数字存储在数组中的方法。我有一个带浮点数的.txt文件(testfile.txt),比如这个
1.0 2.0
3.0 4.0
5.0 6.0
7.0 8.0
9.0 10.0
我想将它存储到一个数组中。但是当我这样做时,我的所有数字都转换为整数。我的程序看起来像这样:
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
double number[10];
ifstream infile;
infile.open("testfile.txt");
for(int a=0; a<10; a=a+1)
{
infile >> number[a]; // Reading from the file
cout << number[a] << endl;
}
}
输出就像这样
1
2
3
4
5
6
7
8
9
10
有人可以向我解释我做错了什么吗?我已经尝试了很多,提前谢谢!
答案 0 :(得分:2)
您的问题不在于如何存储数字。
数字存储得很好。
您的问题是如何查看数字。
您打印数字的方式是错误的,因此您看到的数字是错误的,因此您认为数字有问题。
默认情况下,cout << my_double_variable
会渲染您的双倍而不带小数。
一个简单的谷歌搜索&#34; C ++ cout double&#34;首先得到以下stackoverflow Q&amp; A:
How do I print a double value with full precision using cout?
根据该解决方案,解决方案是使用cout.precision(N);
,其中N
是您所需的精度。
小字体: 如果您使用的是调试器,您可能已经亲眼看到了这一点,而无需编写任何代码来打印内容被错误的打印输出误导,没有所有的野鹅追逐。所以,我的建议是: 开始使用调试器。 。