我試圖從文本文件讀取數據使用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