std::basic_ios<CharT,Traits>:: eof
|
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 フラグの全組み合わせについて示しています:
| 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 |
|
ファイル終端をチェックする
(関数) |