2013-11-01 24 views
2

我想學習如何使用ifstream在C++中上傳和讀取文件(對於編程相當新,所以我試圖簡單地開始)。由於我的示例文件,我有這樣一個文本文件:使用ifstream檢查C++中的數據類型

3 
1 
2 

,這在主文件:

int num; 
ifstream infile; 
infile.open(filename,ios::in); 
infile>>num; 
cout<<num<<endl; 

,所以如果我取代第一行中我的文本文件:

k 
1 
2 

我希望我的程序檢查我的文件中的第一個條目是int類型,然後退出並給出錯誤(如果不是)。相反,我總是得到0作爲輸出。我能做些什麼來檢查這個可能的錯誤?

+0

您可以嘗試'file.goog()'或'file.bad()'。請查看[this](http://www.cplusplus.com/reference/ios/ios/good/)瞭解詳細信息 – summer

+0

非常好,它現在似乎按照我希望的方式工作。多麼「好」的功能。謝謝,我一定會收藏這個網站 – user101368

回答

1

這是應該如何完成的。不推薦使用good()

while (infile >> num) 
{ 
    std::cout << num << std::endl; 
} 

if (infile.fail() && !infile.eof()) 
{ 
    std::cout << "Invalid number"; 
}