CARVIEW |
Select Language
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Mon, 28 Jul 2025 17:09:47 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Location: /reference/streambuf/streambuf/underflow/
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 28 Jul 2025 17:09:47 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
ETag: W/"7f89-MldISD6w0tmNBTicGIRVVdWEbeI"
Content-Encoding: gzip
Virtual function called by other member functions to get the current character in the controlled input sequence without changing the current position.
It is called by public member functions such as sgetc to request a new character when there are no read positions available at the get pointer (gptr).
Its default behavior in streambuf is to return the character pointed by gptr (without advancing it), if characters are available at that position. Or, if there are no characters, the function always returns EOF (indicating failure), but derived classes can override this behavior to modify the gptr and egptr internal pointers in such a way that more characters from the input sequence may be made accessible through the buffer (if these are available). Both filebuf and stringbuf override this virtual member function.
If there are no more characters to read from the controlled input sequence, the function returns the end-of-file value (EOF).
Concurrent access to the same stream buffer object may introduce data races.
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>
streambuf
- streambuf::~streambuf
- streambuf::streambuf
public members
protected members
virtual protected members
- Reference
- <streambuf>
- streambuf
- underflow
protected virtual member function
<streambuf> <iostream>
std::streambuf::underflow
int underflow();
Get character on underflow
It is called by public member functions such as sgetc to request a new character when there are no read positions available at the get pointer (gptr).
Its default behavior in streambuf is to return the character pointed by gptr (without advancing it), if characters are available at that position. Or, if there are no characters, the function always returns EOF (indicating failure), but derived classes can override this behavior to modify the gptr and egptr internal pointers in such a way that more characters from the input sequence may be made accessible through the buffer (if these are available). Both filebuf and stringbuf override this virtual member function.
Parameters
noneReturn Value
The character at the current position of the controlled input sequence, as a value of typeint
.If there are no more characters to read from the controlled input sequence, the function returns the end-of-file value (EOF).
Data races
Modifies the stream buffer object.Concurrent access to the same stream buffer object may introduce data races.
Exception safety
Basic guarantee: if an exception is thrown, the stream buffer is in a valid state.See also
- streambuf::sgetc
- Get current character (public member function)
- streambuf::uflow
- Get character on underflow and advance position (protected virtual 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