2010-06-22 63 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