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