2010-06-22 61 views
0

我试图从文本文件读取数据使用fstream,但得到了错误的数据。错误的数据输入与fstream

ifstream fin ("C:\\Users\\rEgonicS\\Documents\\test.in"); 
int number; 
fin >> number; 
cout << number; 

test.in简直是12
cout reads 4273190
有人可以解释为什么这是如此以及如何解决它?

+1

Test.in字面意思是“12”,或只是12,它是如何编码的?如果您不确定,文件大小和您保存的程序是什么? – 2010-06-22 17:05:45

+0

它只是12.我将它保存在记事本中,文件大小为4字节和4KB磁盘。 – rEgonicS 2010-06-22 22:18:14

回答

3

最可能的原因是文件打开失败。打开后检查状态,并在阅读后检查;对于一个简单的测试,可以这样做:

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; 

这可能会给出进一步的线索。

+0

我跑了上面的程序,并出现“文件打开失败”和“文件读取失败”。 – rEgonicS 2010-06-22 22:17:17

+0

所以这意味着它打开失败(它将会因为未打开而无法阅读)。路径是否正确?文件是否可读? – 2010-06-22 23:18:03