1. 程式人生 > >C++ 從文件中讀取數據的代碼及優化

C++ 從文件中讀取數據的代碼及優化

版本 重要 class gpo 個數 文件中 放置 表達式 div

 1 #include <fstream>
 2 ifstream inFile;    //ifstream類的inFile對象
 3 
 4 double value;
 5 inFile >> value;
 6 while(inFile.good())
 7 {
 8     //loop body goes here   
9   inFile >> value; 10 }

這是原始版本代碼,方法good()指出最後一次讀取輸入的操作是否成功,這一點至關重要. 這意味著應該在執行讀取輸入的操作後,立刻應用這種測試。為此,一種標準方法是,在循環之前(首次執行循環測試前)放置一條輸入語句,並在循環的末尾(下次執行循環測試之前)放置另一條輸入語句。

鑒於以下事實,可以對上述代碼進行精簡:表達式 inFile >> value 的結果為inFile,而在需要一個bool結果值的情況下,inFile的結果又可以為inFile.good(),即true 或者 false。

因此有了下面的精簡後的代碼:

1 #include <fstream>
2 ifstream inFile;    //ifstream類的inFile對象
3  
4 double value;
5 while(inFile >> value)
6 {
7     //loop body goes here   
8
}

這種設計仍然遵循了在測試之前進行讀取的規則,因為要計算表達式inFile >> value的值,程序必須首先試圖將一個數字讀取到value中。

C++ 從文件中讀取數據的代碼及優化