名前空間
変種
操作

std::ios_base::iostate

提供: cppreference.com
< cpp‎ | io‎ | ios base
 
 
 
 
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;eofbitfailbit を両方セットします。 ブーリアン true のパースを完了するのに十分な文字がありません。
  • operator>>std::basic_istream の文字抽出オーバーロード — 抽出する文字数の制限 (もしあれば) の前にストリームの終端に達した場合。
  • std::get_time 入出力マニピュレータおよび std::time_get のパース関数 (time_get::gettime_get::get_timetime_get::get_date など) のいずれか — 期待される日付時刻値のパースに必要な最後の文字が処理される前にストリームの終端に達した場合。
  • std::get_money 入出力マニピュレータおよび money_get::get 関数 — 期待される金額値のパースに必要な最後の文字が処理される前にストリームの終端に達した場合。
  • すべての書式付き入力関数の先頭で実行される basic_istream::sentry のコンストラクタ — skipws ビットがセットされていない (std::noskipws の発行などによって) 場合を除き、 sentry は先行するホワイトスペース文字を読み込み、破棄します。 その操作中に入力ストリームの終端に達した場合、 eofbitfailbit の両方がセットされ、入力は行われません。
  • 入出力マニピュレータ std::ws — ホワイトスペースの消費中にストリームの終端に達した場合 (書式付き入力の sentry と異なり、この場合 failbit はセットしません)。
  • 書式なし入力関数 basic_istream::readbasic_istream::getbasic_istream::peek および basic_istream::getline — ストリームの終端に達したとき。
  • 破棄入力関数 basic_istream::ignore — 指定された区切り文字に達する前にストリームの終端に達したとき。
  • 直接入力関数 basic_istream::readsomebasic_streambuf::in_avail-1 を返す場合。

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

[編集] failbit

failbit は以下の標準ライブラリ関数によってセットされます。

  • すべての入力関数の先頭で実行される basic_istream::sentry のコンストラクタ — ストリームに eofbit または badbit がすでに設定されている場合、または先行するホワイトスペースの消費中にストリームの終端に達した場合。
  • すべての出力関数の先頭で実行される basic_ostream::sentry のコンストラクタ — 処理系定義の状況で。
  • operator>>(std::basic_string<>) — 入力ストリームから文字を抽出しなかった場合。
  • operator>>(std::complex<>) — 有効な複素数の抽出に失敗した場合。
  • operator>> の文字配列および単一文字のオーバーロード — いかなる文字の抽出にも失敗した場合。
  • basic_istream::operator>> の streambuf オーバーロード — streambuf 引数がヌルポインタの場合、または streambuf に1文字も挿入されなかった場合。
  • basic_ostream::operator<< の streambuf オーバーロード — 1文字も挿入しなかった場合。
  • operator>>(std::bitset<>) — 入力ストリームから1文字も抽出しなかった場合。
  • std::getline — 1文字も抽出しなかった場合、または入力ストリームから basic_string::max_size 個の文字を抽出してしまった場合。
  • basic_istream::operator>> の数値、ポインタ、およびブーリアン入力オーバーロード (正確には、それらから呼ばれる num_get::get のオーバーロード) — 入力が有効な値としてパースできなかった場合、またはパースされた値が結果の型に収まらない場合。
  • 時間入力マニピュレータ std::get_time (正確には、そこから呼ばれる time_get::get) — 入力が指定された書式文字列に従って時間の値として曖昧なくパースできなかった場合。
  • 金額入力マニピュレータ std::get_money (正確には、そこから呼ばれる money_get::get) — 入力がロケールのルールに従って金額の値として曖昧なくパースできなかった場合。
  • すべての RandomNumberEngine の抽出演算子 — 不正な入力に遭遇した場合。
  • すべての RandomNumberDistribution の抽出演算子 — 不正な入力に遭遇した場合。
  • 書式なし入力関数 basic_istream::get — いかなる文字の抽出にも失敗した場合。
  • basic_istream::getline — 1文字も抽出しなかった場合、区切り文字に遭遇せず提供されたバッファがいっぱいになった場合、または提供されたバッファサイズが1より小さい場合。
  • basic_istream::read — 要求された文字をすべて抽出できる前に入力ストリームにファイル終端状況が発生した場合。
  • basic_istream::seekg — 失敗した場合。
  • basic_ostream::tellp — 失敗した場合。
  • ファイル名の引数を取る std::basic_fstreamstd::basic_ifstream および std::basic_ofstream のコンストラクタ — ファイルを開けなかった場合。
  • basic_fstream::openbasic_ifstream::open および basic_ofstream::open — ファイルを開けなかった場合。
  • basic_fstream::closebasic_ifstream::close および basic_ofstream::close — ファイルを閉じれなかった場合。

[編集] badbit

badbit は以下の標準ライブラリ関数によってセットされます。

[編集]

[編集] 関連項目

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

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
状態フラグを返します
(std::basic_iosのパブリックメンバ関数) [edit]
状態フラグを設定します
(std::basic_iosのパブリックメンバ関数) [edit]
状態フラグを変更します
(std::basic_iosのパブリックメンバ関数) [edit]