std::basic_istream<CharT,Traits>::unget
From cppreference.com
                    
                                        
                    < cpp | io | basic istream
                    
                                                            
                    |   basic_istream& unget();  | 
||
Makes the most recently extracted character available again.
First, clears eofbit. Then,(since C++11) unget 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 <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"; } }
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<CharT,Traits>)  | |
|   extracts characters  (public member function)  | |
|   reads the next character without extracting it  (public member function)  | |
|   puts a character into input stream  (public member function)  |