std::basic_ios<CharT,Traits>::fail

来自cppreference.com
< cpp‎ | io‎ | basic ios
bool fail() const;

若关联流上已发生错误则返回 true 。特别是若 rdstate() 中设置了 badbitfailbit 则返回 true

设置 failbitbadbit 的条件列表见 ios_base::iostate

参数

(无)

返回值=

若已出现错误则为 true ,否则为 false

示例

#include <iostream>
#include <fstream>
#include <cstdlib>
int main()
{
    std::ifstream file("test.txt");
    if(!file)  // operator! 用于此
    {  
        std::cout << "File opening failed\n";
        return EXIT_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 error while reading\n";
    else if (file.eof())
        std::cout << "End of file reached successfully\n";
    else if (file.fail())
        std::cout << "Non-integer data encountered\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
检查文件错误
(函数)