feof使用注意

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

 FILE* pf;
while(!feof(pf)){
//fread 讀取
//資料處理
}

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

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

 while(){
//fread讀取
if(feof(pf)) break;
}

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

最新文章

  1. learn shell
  2. ASP.NET Page对象各事件执行顺序(转)
  3. 8天掌握EF的Code First开发系列之2 Code First开发系列之领域建模和管理实体关系
  4. Windows PE 之 MASM32 环境搭建
  5. C#的浅拷贝和深拷贝
  6. Posix线程编程指南(1) 线程创建与取消
  7. 状压DP uvalive 6560
  8. HDU1013_Digital Roots【大数】【水题】
  9. 使用 phpMyAdmin无法登录mysql的问题
  10. java基础程序题
  11. Entity Framework:如果允许模型处于非法状态,在某些场景下,记得清空DbContext
  12. Eclipse Oxygen 解决 自动导包的问题
  13. luogu3687-[ZJOI2017] 仙人掌
  14. Qt QDateEdit QDateTimeEdit
  15. hadoop配置项笔记 - streaming
  16. 转:安装PHP出现make: *** [sapi/cli/php] Error 1 解决办法
  17. windows的消息传递--消息盒子
  18. debian9部署ownCloud
  19. 升级java编译器
  20. [C#学习笔记]lock锁的解释与用法

热门文章

  1. 如何将开源项目部分代码作为private放在github上?
  2. JAVA字符串格式化-String.format()的使用 (转载)
  3. Strom Topology执行分析:worker数,Bolt实例数,executor数,task数
  4. 多个MapReduce作业相互依赖时,使用JobControl进行管理
  5. 【第一篇】说说MVC+EF easyui dataGrid 动态加载分页表格
  6. C语言之内存覆盖
  7. BZOJ 3306 树
  8. windows xp 安装mysql5.6.17-ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password
  9. MyEclipse8.5注册码 到2015年
  10. JVM内存结构之三--持久代