命名空间
变体
操作

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

[编辑] 异常

failure 如果发生错误(错误状态标志不是 goodbit)并且 exceptions() 设置为为此状态抛出异常。

如果内部操作抛出异常,则捕获该异常并设置 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> 的公有成员函数) [编辑]
提取字符
(公有成员函数) [编辑]
读取下一个字符而不提取它
(公有成员函数) [编辑]
将一个字符放入输入流
(公有成员函数) [编辑]