首页 > 其他 > 详细

feof使用注意

时间:2014-02-13 09:49:44      阅读:388      评论:0      收藏:0      [点我收藏+]

feof使用注意

  以下是错误的用法,發生狀況->多讀一次?

1 FILE* pf;
2  while(!feof(pf)){
3    //fread 讀取
4    //資料處理
5  }

  feof是發生在fread使用"讀取過檔案"後,已讀到End-of-file位置時,回傳的指標才會是true(檔案結尾),所以上面的寫法在讀完最後一筆後,指標會停留在End-of-file位置前,需要再讀一次到在End-of-file位置後(判斷讀取資料失敗,因為已讀到eof),才會為true,而因為fread讀取失敗,buffer的資料不會改變,所以才會多讀一筆。

  改善的方式,如先使用fread讀取,再來判斷feof,當feof判斷為true時就跳離loop:

1 while(1){
2   //fread讀取
3   if(feof(pf)) break;
4 }

参考:http://www.kuqin.com/shuoit/20131027/335960.html

feof使用注意

原文:http://www.cnblogs.com/tekkaman/p/3546732.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!