fread feof 文件尾读取重复的问题


问题:

 多路归并排序时,每次通过fread读取小文件里的一个double数据,通过feof判断是否读取结束,

 结果,在最后总的排序文件中,每个小文件的最后一行的数据回重复一遍


原因:

  feof只是检查标志位,如果是good则返回0,是bad就返回1。

  更改标志位的fread函数,只有当它读不到东西了,才会把标志位从good变成bad,当fread读到最后一个字符时,由于读取是成功的,标志位没有变化,表示文件还能读,

  实际上已经没有东西可读了,只有下次fread时才会发现


解决方法:

   不要通过feof的值去判断是否到了文件尾,通过fread去判断

   fread返回读取的字节数,如果返回0,说明读到了文件尾

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值