eof() 和fail()

来源:互联网 发布:mac如何打开 lua文件 编辑:程序博客网 时间:2024/06/05 19:08
OF是End Of File 的缩写,表示“文件结束”。从输入流读取数据,如果到达文件末尾(遇到文件结束符),eof函数值为非零值(表示真),如果未到文件结尾则为0(表示假)。eof 函数用来判断是否到达文件结尾;fail()用来判断一个流是否“坏”掉了。如果failbit、badbit中任意一种或两种被设置,则fail()返回true,否则返回false;

调用方式cin.fail();

failbit-->记录流缓冲区的完整性的丧失badbit-->记录未能从流中提取的有效场其实这两种是ios类定义了这四个常量badbit, eofbit, failbit, goodbit中的两种,这四个标志常量就是取对应标志位的掩码,也即输入的四种异常情况! 以上四个常量对应的取值为: ios::badbit    001   输入(输出)流出现致命错误,不可挽回  (文件受损或者硬件故障)
ios::eofbit    010   已经到达文件尾 
ios::failbit   100   输入(输出)流出现非致命错误,可挽回 (如读取类型中发生类型不匹配或者遇到eof时返回true)ios::goodbit   000   流状态完全正常, 各异常标志位都为0 (注:good() 该方法在没有发生任何错误时返回true)就一般说来,badbit是一些系统底层或者硬件出错,比如文件系统错误,磁盘错误,网络错误等等。failbit就是其他软件错误,如试图从不能解析为整数的字符串里想要读一个整数等,顺便说下eof也会造成failbit被置位。

0 0
原创粉丝点击