【发布时间】:2016-08-27 22:41:34
【问题描述】:
我正在处理一个项目,但我找不到将浮点数存储在数组中的方法。我有一个带有浮点数的 .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
有人可以向我解释我做错了什么吗?我已经尝试了很多,提前谢谢!
【问题讨论】:
-
你能解释一下问题出在哪里吗?
-
"我所有的数字都转换为
float" -- 我在这里假设您的意思是您认为所有数字都转换为int,因为它们'在输出中重新打印“作为整数”。如果我在这里的假设是正确的,那么您只是没有设置std::ostream精度,以便它们会以小数形式打印 - 数字本身确实存储为double。 -
您可以使用
std::fixed和std::setprecision()来控制十进制数字的输出。 -
您好 nordhagen,欢迎来到 Stack Overflow。我不太明白你的问题;输入文件中的所有数字都是整数,您显示的输出似乎完美地保留了数字值。你期望发生什么不同的事情?
标签: c++ arrays numbers double text-files