std::basic_istream<CharT,Traits>:: unget
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
#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) |