C++/C 对EOF的理解

最近在分析雷神的找NALU程序时,总觉得最后一个NALU长度求得不对,但是跟了一下以及用UE工具看了,雷神的写法都是对的,那么一定是我理解错了。果不其然,我忽略了EOF的问题。知识需要总结,所以利用这个机会总结在此,总结了C++与C对于EOF的一些处理。

C++用了istream &get( char &ch)方法,而C用了fgetc方法去读取一个字节

自己觉得写得透彻的文章列在下面:

【转】:https://www.cnblogs.com/dolphin0520/archive/2011/10/13/2210459.html

总结几点:

(1).文件结束符EOF定义为-1,但是并不是在文件中实实在在存在的

(2).C++的eof()方法与C的feof方法

eof(): 如果达到关联的输入文件末尾,eof函数返回true,否则返回false

feof:The function feof() tests the  end-of-file  indicator  for  the  stream pointed  to by stream, returning nonzero if it is set

但是二者都不是以读完流文件最后一个字节来判断达到了文件末尾的,二者都是在读完流文件最后一个字节后再读一个字节后判断达到流末尾的,而EOF则在fgetc函数读错或者达到文件末尾(读完最后一个字节再读一个字节)时产生,而C++的get方法似乎行为与C不同,读完最后一个字节再读一次最后一个字节

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值