std::basic_istream::unget
From cppreference.com
< cpp | io | basic istream
basic_istream& unget(); |
||
Makes the most recently extracted character available again.
First clears eofbit. |
(since C++11) |
Then the function behaves as UnformattedInputFunction
. After constructing and checking the sentry object, if any ios_base::iostate flags are set, the function sets failbit
and returns. Otherwise, calls rdbuf()->sungetc().
If rdbuf()->sungetc() returns Traits::eof(), calls setstate(badbit).
In any case, sets the gcount()
counter to zero.
Parameters
(none)
Return value
*this
Exceptions
If an internal operation throws an exception, it is caught and badbit is set. If exceptions() is set for badbit
, the exception is rethrown.
Example
Run this code
#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'; } }
Output:
Got: H got again: H
See also
moves the next pointer in the input sequence back by one (public member function of std::basic_streambuf ) | |
extracts characters (public member function) | |
reads the next character without extracting it (public member function) | |
puts character into input stream (public member function) |