std::basic_istream<CharT,Traits>::unget
< cpp | io | basic istream
basic_istream& unget(); |
||
令最近释出的字符再次可用。
首先清除 eofbit 。 |
(C++11 起) |
然后函数表现为无格式输入函数 (UnformattedInputFunction) 。构造并检查 sentry 对象后,若设置了任何 ios_base::iostate 标志,则函数设置 failbit
并返回。否则,调用 rdbuf()->sungetc() 。
若 rdbuf()->sungetc() 返回 Traits::eof() ,则调用 setstate(badbit) 。
任何情况下,设置 gcount()
计数器为零。
参数
(无)
返回值
*this
异常
若内部操作抛出异常,则捕获它并设置 badbit 。若对 badbit
设置了 exceptions() ,则重抛该异常。
示例
运行此代码
#include <sstream> #include <iostream> 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> 的公开成员函数) | |
从流中读并取走(移除类似指针向下一个元素移动)一个字符 (公开成员函数) | |
仅读出但不取走(不移除类似指针并未移动)一个字符 (公开成员函数) | |
往输入流中退回一个字符 (公开成员函数) |