Namespaces
Variants

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

From cppreference.net
bool operator ! ( ) const ;

関連するストリームでエラーが発生した場合に true を返します。具体的には、 true badbit または failbit rdstate ( ) で設定されている場合に返されます。

目次

パラメータ

(なし)

戻り値

true エラーが発生した場合、 false それ以外の場合。

#include <cstdlib>
#include <fstream>
#include <iostream>
int main()
{
    std::ifstream file("test.txt");
    if (!file) // operator! is used here
    {  
        std::cout << "File opening failed\n";
        return EXIT_FAILURE;
    }
    // typical C++ I/O loop uses the return value of the I/O function
    // as the loop controlling condition, operator bool() is used here
    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 フラグの全組み合わせについて示しています:

**注記**: このHTMLフラグメントには翻訳すべきテキストコンテンツが含まれていません。すべての要素は以下のいずれかに該当します: - ` `タグ内のC++ストリーム状態ビット名(`eofbit`, `failbit`, `badbit`) - ` `タグ内のC++メンバー関数名(`good()`, `fail()`, `bad()`, `eof()`) - C++演算子(`operator bool`, `operator!`) - HTMLタグと属性 指定された翻訳ルールに従い、これらのC++固有の用語とHTML構造はすべて原文のまま保持されています。 **注釈**: このHTMLテーブル行には、C++のブール値である`true`と`false`のみが含まれており、翻訳対象となる通常のテキストは含まれていません。C++のキーワードは翻訳しないという指示に従い、すべてのHTML構造とコンテンツをそのまま保持しています。 **注記**: このHTMLコード内のテキストはすべてC++のブール値リテラル(`true`/`false`)であり、C++固有の用語に該当するため、翻訳対象外としました。HTMLタグ、属性、および書式設定はすべて元のまま保持されています。 **注記**: このHTMLテーブル行の内容は、C++のブール値リテラル`true`と`false`のみを含んでいます。これらの用語はC++の予約語であり、翻訳対象外と指定されているため、元の英語表記を保持しています。HTMLタグと属性、書式設定もすべて元のまま維持されています。
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 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