发布网友 发布时间:2023-06-27 02:58
共2个回答
热心网友 时间:2024-12-12 21:46
具体的错误情况跟系统对c++标准库的实现有关。热心网友 时间:2024-12-12 21:47
badbit是一些系统底层或者硬件出错,比如文件系统错误,磁盘错误,网络错误等
failbit就是其他软件错误,如试图从不能解析为整数的字符串里想要读一个整数等,顺便说下eof也会造成failbit被置位。
出错之后(不管是可挽回还是不可挽回)的结果是,之后的io操作统统不执行,因为这些操作都会有个if语句先判断这些错误位,如果被置位就直接返回了。
出错后可以用clear方法清除这些错误位,然后继续io。如果错误没有排除,那么结果就是相应的位又被置位了。