# std::basic_ios<CharT,Traits>::operator!

< cpp‎ | io‎ | basic ios

bool operator!() const; |  |

若关联流上已出现错误则返回 true 。特别是若 rdstate() 中设置了 `failbit` 或 `badbit` 则返回 true 。

### 参数

（无）

### 返回值

若已出现错误则为 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