std::basic_istream<CharT,Traits>::unget
From cppreference.com
< cpp | io | basic istream
| basic_istream& unget(); |
||
直前に抽出された文字を再度利用可能にします。
まず、eofbit をクリアします。次に、(C++11以降) unget は UnformattedInputFunction として動作します。セントリーオブジェクトの構築とチェックの後、ios_base::iostate フラグがいずれか設定されている場合、関数は failbit を設定して返します。それ以外の場合、rdbuf()->sungetc() を呼び出します。
rdbuf()->sungetc() が Traits::eof() を返した場合、setstate(badbit) を呼び出します。
いずれの場合も、gcount() カウンターをゼロに設定します。
目次 |
[編集] パラメータ
(なし)
[編集] 戻り値
*this
[編集] 例外
failure: エラーが発生した場合(エラー状態フラグが goodbit ではない)で、exceptions() がその状態に対してスローするように設定されている場合。内部操作が例外をスローした場合、それはキャッチされ、badbit が設定されます。exceptions() が badbit に対して設定されている場合、例外は再スローされます。
[編集] 例
このコードを実行
#include <iostream> #include <sstream> int main() { std::istringstream s1("Hello, world."); char c1 = s1.get(); if (s1.unget()) { char c2 = s1.get(); std::cout << "Got: '" << c1 << "'. Got again: '" << c2 << "'.\n"; } }
出力
Got: 'H'. Got again: 'H'.
[編集] 関連項目
| 入力シーケンスの次のポインタを1つ戻す ( std::basic_streambuf<CharT,Traits> の public メンバ関数) | |
| 文字を抽出する (public member function) | |
| 次の文字を抽出せずに読み取る (public member function) | |
| 文字を入力ストリームに戻す (public member function) |