std::basic_ios<CharT,Traits>::bad
来自cppreference.com
bool bad()const; | ||
若关联的流上已出现不可恢复的错误则返回 true。明确说即若 rdstate() 中设置了 badbit 则返回 true。
设置 badbit
的条件列表见 ios_base::iostate。
目录 |
[编辑]参数
(无)
[编辑]返回值
若出现不可恢复的错误则为 true,否则为 false。
[编辑]示例
运行此代码
#include <cstdlib>#include <fstream>#include <iostream> int main(){std::ifstream file("test.txt");if(!file)// 此处使用了 operator!{std::cout<<"文件打开失败\n";returnEXIT_FAILURE;} // 典型的 C++ I/O 循环以 I/O 函数的返回值为循环控制条件,// 此处使用了 operator bool()for(int n; file >> n;)std::cout<< n <<' ';std::cout<<'\n'; if(file.bad())std::cout<<"读取时发生了 I/O 错误\n";elseif(file.eof())std::cout<<"成功抵达文件末尾\n";elseif(file.fail())std::cout<<"遇到了非整数数据\n";}
[编辑]参阅
下表显示 basic_ios
访问器(good()、fail() 等)对于 ios_base::iostate 标志的所有可能组合的值:
ios_base::iostate 标志 | basic_ios 访问器 | |||||||
eofbit | failbit | badbit | good() | fail() | bad() | eof() | operator bool | operator! |
false | false | false | true | false | false | false | true | false |
false | false | true | false | true | true | false | false | true |
false | true | false | false | true | false | false | false | true |
false | true | true | false | true | true | false | false | true |
true | false | false | false | false | false | true | true | false |
true | false | true | false | true | true | true | false | true |
true | true | false | false | true | false | true | false | true |
true | true | true | false | true | true | true | false | true |