Namespaces
Variants

std::ios_base:: iostate

From cppreference.net
typedef /*implementation defined*/ iostate ;
static constexpr iostate goodbit = 0 ;
static constexpr iostate badbit = /* implementation defined */

static constexpr iostate failbit = /* implementation defined */

static constexpr iostate eofbit = /* implementation defined */

ストリーム状態フラグを指定します。これは BitmaskType であり、以下の定数が定義されています:

定数 説明
goodbit エラーなし
badbit 回復不能なストリームエラー
failbit 入出力操作の失敗(書式化または抽出エラー)
eofbit 関連付けられた入力シーケンスがファイル終端に到達

目次

eofbit

eofbitは以下の標準ライブラリ関数によって設定されます:

  • 文字列入力関数 std::getline が、指定された終端文字に到達するのではなく、ストリームの終端に到達することで完了した場合。
  • 数値入力オーバーロードの basic_istream::operator>> が、 num_get::get 処理のステージ2で次の文字を読み込む際にストリームの終端に遭遇した場合。解析状態に応じて、 failbit が同時に設定される場合とされない場合がある。例えば、 int n ; istringstream buf ( "1" ) ; buf >> n ; eofbit を設定するが、 failbit は設定しない:整数 1 は正常に解析され n に格納された。一方、 bool b ; istringstream buf ( "tr" ) ; buf >> boolalpha >> b ; eofbit failbit の両方を設定する:ブール値 true の解析を完了するのに十分な文字がなかった。
  • 文字抽出オーバーロードの operator>> std::basic_istream が、抽出する文字数の制限(存在する場合)に達する前にストリームの終端に到達した場合。
  • I/Oマニピュレータ std::get_time および std::time_get 解析関数: time_get::get time_get::get_time time_get::get_date などが、期待される日時値の解析に必要な最後の文字を処理する前にストリームの終端に到達した場合。
  • I/Oマニピュレータ std::get_money および money_get::get 関数が、期待される通貨値の解析に必要な最後の文字を処理する前にストリームの終端に到達した場合。
  • すべての書式付き入力関数の先頭で実行される basic_istream::sentry コンストラクタ: skipws ビットが解除されていない限り(例: std::noskipws の発行により)、sentryは先頭の空白文字を読み取り破棄する。この操作中に入力ストリームの終端に到達した場合、 eofbit failbit の両方が設定され、入力は行われない。
  • I/Oマニピュレータ std::ws が、空白文字を消費中にストリームの終端に到達した場合(ただし、書式付き入力sentryとは異なり、この場合 failbit は設定しない)。
  • 非書式付き入力関数 basic_istream::read basic_istream::get basic_istream::peek basic_istream::readsome basic_istream::ignore 、および basic_istream::getline が、ストリームの終端に到達した場合。
  • 入力破棄関数 basic_istream::ignore が、指定された区切り文字に到達する前にストリームの終端に到達した場合。
  • 即時入力関数 basic_istream::readsome が、 basic_streambuf::in_avail - 1 を返した場合。

以下の関数は副作用として eofbit をクリアします:

eofbitが設定されている場合、ほぼすべての状況でfailbitも設定されていることに注意してください。

failbit

failbit は以下の標準ライブラリ関数によって設定されます:

badbit

badbit は以下の標準ライブラリ関数によって設定されます:

関連項目

以下の表は、すべての可能な ios_base::iostate フラグの組み合わせに対する basic_ios アクセサ( good() fail() など)の値を示しています:

**注記**: この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 false false true false true false true
true true true false true true true false true
状態フラグを返す
( std::basic_ios<CharT,Traits> の公開メンバ関数)
状態フラグを設定する
( std::basic_ios<CharT,Traits> の公開メンバ関数)
状態フラグを変更する
( std::basic_ios<CharT,Traits> の公開メンバ関数)