C++ 從檔案中讀取資料的代碼及最佳化

來源:互聯網
上載者:User

標籤:log   方法   情況   stream   style   應該   測試   標準   ble   

 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++ 從檔案中讀取資料的代碼及最佳化

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.