C++之檢測文件結尾


  當使用文件作為輸入流時,為了確保適時的結束文件讀取操作,程序要靠檢查文件尾來判斷該何時停止讀取。
常用的檢查文件尾方法有兩種:
  兩種方式均已將 fin 與文件關聯,即 均已聲明 fin 輸入流,並已調用 open 成員函數打開了文件。
第一種:
  該方式可以要求程序從文件中連續讀取數字,直到沒有更多的數字可供讀取為止。代碼如下:

1 int next;
2 while(fin >> next){
3  //用戶代碼
4 }

 


第二種:
  該方式利用每個輸入文件流都有的 eof 成員函數來判斷何時讀完文件的全部內容。代碼如下:

1 int number;
2 fin.get(number);
3 while( !fin.eof() ){
4  //用戶代碼
5  fin.get(number);
6 }

 

  當 eof 函數檢測到文件尾,會返回 真,否則返回 假。
  注意,用該種方式必須保證要讀取文件結尾之后,eof 函數才會反應。這就是為何本段代碼 while 中用 fin.get(number);結尾的原因。

以上兩種檢測文件結尾在多數情況均可使用,但最好遵循以下原則:
  將輸入作為文本處理並用 get 成員函數讀取時,用 eof 成員函數方式。
  處理數值數據時,用第一種方式。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM