名稱空間
變體
操作

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

來自 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

[編輯] 異常

如果發生錯誤(錯誤狀態標誌不是 goodbit)並且 exceptions() 設定為針對該狀態丟擲,則丟擲 failure

如果內部操作丟擲異常,則捕獲該異常並設定 badbit。如果針對 badbit 設定了 exceptions(),則重新丟擲該異常。

[編輯] 示例

#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'.

[編輯] 參閱

將輸入序列中的下一個指標後退一個位置
(std::basic_streambuf<CharT,Traits> 的公開成員函式) [編輯]
提取字元
(公開成員函式) [編輯]
讀取下一個字元而不提取它
(公開成員函式) [編輯]
將字元放入輸入流
(公開成員函式) [編輯]