Namespaces
Variants

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

From ja.cppreference.net
bool eof ( ) const ;

関連付けられたストリームがファイルの終端に達した場合、 true を返します。具体的には、 rdstate() 内の eofbit が設定されている場合に true を返します。

ios_base::iostate が設定される条件の一覧については、 eofbit を参照してください。

目次

パラメータ

(なし)

戻り値

true がEOF(ファイル終端)に達した場合、 false がそれ以外の場合。

注記

この関数は直近のI/O操作によって設定されたストリーム状態のみを報告し、関連付けられたデータソースを検査しません。例えば、直近のI/Oがファイルの最終バイトを返す get() であった場合、 eof() は false を返します。次の get() は何も読み込むことができず、 eofbit を設定します。その時初めて eof() は true を返します。

一般的な使用法では、入力ストリームの処理はエラー発生時に停止します。 eof() と fail() を使用して、異なるエラー状態を区別することができます。

例

#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()`, `operator bool`, `operator!`) - HTMLタグと属性 指示に従い、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
偽 偽 真 偽 真 真 偽 偽 真
偽 真 偽 偽 真 偽 偽 偽 真
偽 真 真 偽 真 真 偽 偽 真
true false false false false false true true false
true false true false true true true false true
真 真 偽 偽 真 偽 真 偽 真
true true true false true true true false true
ファイル終端をチェックする
(関数)