我试图从文本文件读取数据使用fstream,但得到了错误的数据。错误的数据输入与fstream
ifstream fin ("C:\\Users\\rEgonicS\\Documents\\test.in");
int number;
fin >> number;
cout << number;
test.in
简直是12
。
cout
reads 4273190
。
有人可以解释为什么这是如此以及如何解决它?
我试图从文本文件读取数据使用fstream,但得到了错误的数据。错误的数据输入与fstream
ifstream fin ("C:\\Users\\rEgonicS\\Documents\\test.in");
int number;
fin >> number;
cout << number;
test.in
简直是12
。
cout
reads 4273190
。
有人可以解释为什么这是如此以及如何解决它?
最可能的原因是文件打开失败。打开后检查状态,并在阅读后检查;对于一个简单的测试,可以这样做:
ifstream fin ("C:\\Users\\rEgonicS\\Documents\\test.in");
if (!fin) cout << "File open failed\n";
int number;
fin >> number;
if (!fin) cout << "File read failed\n";
cout << number;
这可能会给出进一步的线索。
我跑了上面的程序,并出现“文件打开失败”和“文件读取失败”。 – rEgonicS 2010-06-22 22:17:17
所以这意味着它打开失败(它将会因为未打开而无法阅读)。路径是否正确?文件是否可读? – 2010-06-22 23:18:03
Test.in字面意思是“12”,或只是12,它是如何编码的?如果您不确定,文件大小和您保存的程序是什么? – 2010-06-22 17:05:45
它只是12.我将它保存在记事本中,文件大小为4字节和4KB磁盘。 – rEgonicS 2010-06-22 22:18:14