CARVIEW |
Select Language
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Wed, 23 Jul 2025 17:52:58 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Location: /reference/istream/basic_istream/putback/
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 23 Jul 2025 17:52:58 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
ETag: W/"8399-2b8zInPbGBGVrpmGLCJjsxozsXk"
Content-Encoding: gzip
Attempts to decrease the current location in the stream by one character, making the last character extracted from the stream once again available to be extracted by input operations.
Internally, the function accesses the input sequence by first constructing a sentry object (with noskipws set to
If the call to sputbackc fails, the function sets the badbit flag. Note that this may happen even if c was indeed the last character extracted from the stream (depending on the internals of the associated stream buffer object).
Calling this function sets the value returned by gcount to zero.
Errors are signaled by modifying the internal state flags:
Multiple flags may be set by a single operation.
If the operation sets an internal state flag that was registered with member exceptions, the function throws an exception of member type failure.
Possible output:
Concurrent access to the same stream object may cause data races.
It throws an exception of member type failure if the resulting error state flag is not goodbit and member exceptions was set to throw for that state.
Any exception thrown by an internal operation is caught and handled by the function, setting badbit. If badbit was set on the last call to exceptions, the function rethrows the caught exception.
Reference
C library:
- <cassert> (assert.h)
- <cctype> (ctype.h)
- <cerrno> (errno.h)
-
<cfenv> (fenv.h)C++11
- <cfloat> (float.h)
-
<cinttypes> (inttypes.h)C++11
- <ciso646> (iso646.h)
- <climits> (limits.h)
- <clocale> (locale.h)
- <cmath> (math.h)
- <csetjmp> (setjmp.h)
- <csignal> (signal.h)
- <cstdarg> (stdarg.h)
-
<cstdbool> (stdbool.h)C++11
- <cstddef> (stddef.h)
-
<cstdint> (stdint.h)C++11
- <cstdio> (stdio.h)
- <cstdlib> (stdlib.h)
- <cstring> (string.h)
-
<ctgmath> (tgmath.h)C++11
- <ctime> (time.h)
-
<cuchar> (uchar.h)C++11
- <cwchar> (wchar.h)
- <cwctype> (wctype.h)
Containers:
-
<array>C++11
- <deque>
-
<forward_list>C++11
- <list>
- <map>
- <queue>
- <set>
- <stack>
-
<unordered_map>C++11
-
<unordered_set>C++11
- <vector>
-
Input/Output:
Multi-threading:
-
<atomic>C++11
-
<condition_variable>C++11
-
<future>C++11
-
<mutex>C++11
-
<thread>C++11
-
Other:
- <algorithm>
- <bitset>
-
<chrono>C++11
-
<codecvt>C++11
- <complex>
- <exception>
- <functional>
-
<initializer_list>C++11
- <iterator>
- <limits>
- <locale>
- <memory>
- <new>
- <numeric>
-
<random>C++11
-
<ratio>C++11
-
<regex>C++11
- <stdexcept>
- <string>
-
<system_error>C++11
-
<tuple>C++11
-
<type_traits>C++11
-
<typeindex>C++11
- <typeinfo>
- <utility>
- <valarray>
<istream>
class templates
classes
manipulators
basic_istream
- basic_istream::~basic_istream
- basic_istream::basic_istream
member classes
member functions
non-member overloads
protected members
-
basic_istream::operator=C++11
-
basic_istream::swapC++11
-
- Reference
- <istream>
- basic_istream
- putback
public member function
<istream> <iostream>
std::basic_istream::putback
basic_istream& putback (char_type c);
Put character back
Internally, the function accesses the input sequence by first constructing a sentry object (with noskipws set to
true
). Then (if good), it calls sputbackc(c)
on its associated stream buffer object (if any). Finally, it destroys the sentry object before returning.
The function clears the eofbit flag, if set before the call.
If the call to sputbackc fails, the function sets the badbit flag. Note that this may happen even if c was indeed the last character extracted from the stream (depending on the internals of the associated stream buffer object).
Calling this function sets the value returned by gcount to zero.
Parameters
- c
- Character to be put back.
If this does not match the character at the put back position, the behavior depends on the particular stream buffer object associated to the stream:
- In string buffers, the value is overwritten for output stream buffers, but the function fails on input buffers.
Member type char_type is the type of characters used by the stream (i.e., its first class template parameter, charT).
Return Value
The basic_istream object (*this
).Errors are signaled by modifying the internal state flags:
flag | error |
---|---|
eofbit | - |
failbit | The construction of sentry failed (such as when the stream state was not good before the call). |
badbit | Either the internal call to sputbackc failed, or another error occurred on the stream (such as when the function catches an exception thrown by an internal operation, or when no stream buffer is associated with the stream). When set, the integrity of the stream may have been affected. |
If the operation sets an internal state flag that was registered with member exceptions, the function throws an exception of member type failure.
Example
|
|
Possible output:
Please, enter a number or a word: pocket You entered a word: pocket |
Data races
Modifies the stream object.Concurrent access to the same stream object may cause data races.
Exception safety
Basic guarantee: if an exception is thrown, the object is in a valid state.It throws an exception of member type failure if the resulting error state flag is not goodbit and member exceptions was set to throw for that state.
Any exception thrown by an internal operation is caught and handled by the function, setting badbit. If badbit was set on the last call to exceptions, the function rethrows the caught exception.
See also
- basic_istream::get
- Get characters (public member function)
- basic_istream::unget
- Unget character (public member function)
Home page | Privacy policy
© cplusplus.com, 2000-2025 - All rights reserved - v3.3.4s
Spotted an error? contact us
© cplusplus.com, 2000-2025 - All rights reserved - v3.3.4s
Spotted an error? contact us