C++ 從文件中讀取數據的代碼及優化
阿新 • • 發佈:2018-01-30
版本 重要 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++ 從文件中讀取數據的代碼及優化