C++成员函数 eof( ) 和 fail( )

EOF是End Of File 的缩写,表示“文件结束”。
从输入流读取数据,如果到达文件末尾(遇到文件结束符),eof函数值为非零值(表示真),如果未到文件结尾则为0(表示假)。
eof 函数用来判断是否到达文件结尾;

fail()用来判断一个流是否“坏”掉了。如果failbit、badbit中任意一种或两种被设置,则fail()返回true,否则返回false;
调用方式cin.fail();
 
关于failbit、badbit
 
 

  
  
failbit-->记录流缓冲区的完整性的丧失
badbit-->记录未能从流中提取的有效场

其实这两种是ios类定义了这四个常量badbit, eofbit, failbit, goodbit中的两种,这四个标志常量就是取对应标志位的掩码,也即输入的四种异常情况! 
以上四个常量对应的取值为: 
ios::badbit    001   输入(输出)流出现致命错误,不可挽回  
ios::eofbit    010   已经到达文件尾 
ios::failbit   100   输入(输出)流出现非致命错误,可挽回 
ios::goodbit   000   流状态完全正常, 各异常标志位都为0

就一般说来,badbit是一些系统底层或者硬件出错,比如文件系统错误,磁盘错误,网络错误等等。failbit就是其他软件错误,如试图从不能解析为整数的字符串里想要读一个整数等,顺便说下eof也会造成failbit被置位

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值