名前空間
変種
操作

std::basic_istream<CharT,Traits>::unget

From cppreference.com
< cpp‎ | io‎ | basic istream
 
 
 
 
basic_istream& unget();

直前に抽出された文字を再度利用可能にします。

まず、eofbit をクリアします。次に、(C++11以降) ungetUnformattedInputFunction として動作します。セントリーオブジェクトの構築とチェックの後、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) [編集]
English 日本語 中文(简体) 中文(繁體)