UnformattedInputFunction
Requirements
An UnformattedInputFunction
is a stream input function that performs the following:
- Constructs an object of type
basic_istream::sentry
with automatic storage duration and with thenoskipws
argument set totrue
, which performs the following- if
eofbit
orbadbit
are set on the input stream, sets thefailbit
as well, and if exceptions on failbit are enabled in this input stream's exception mask, throwsios_base::failure
. - flushes the tie()'d output stream, if applicable
- if
- Checks the status of the sentry by calling
sentry::operator bool()
, which is equivalent tobasic_ios::good
. - If the sentry returned
false
or sentry's constructor threw an exception:- sets the number of extracted characters (gcount) in the input stream to zero
- if the function was called to write to an array of
CharT
, writesCharT()
(the null character) to the first location of the array
- If the sentry returned
true
, performs the input as if by callingrdbuf()->sbumpc()
orrdbuf()->sgetc()
.- if the end of the stream is reached (the call to
rdbuf()->sbumpc()
orrdbuf()->sgetc()
returnsTraits::eof()
, setseofbit
. If exceptions on eofbit are enabled in this stream's exception mask, throwsios_base::failure
. - if an exception is thrown during input, sets
badbit
in the input stream. If exceptions on badbit are enabled in this stream's exception mask, the exception is also rethrown. - If no exception was thrown during input, sets the number of extracted characters (gcount) in the input stream.
- if the end of the stream is reached (the call to
- In any event, whether terminating by exception or returning, the sentry's destructor is called before leaving this function.
Standard library
The following standard library functions are UnformattedInputFunction
**s**.
std::getline
, except that it does not modify gcount.basic_istream::operator>>(basic_streambuf*)
basic_istream::get
basic_istream::getline
basic_istream::ignore
basic_istream::peek
basic_istream::read
basic_istream::readsome
basic_istream::putback
, except that it first clearseofbit
basic_istream::unget
, except that it first clearseofbit
basic_istream::sync
, except that it does not modify gcountbasic_istream::tellg
, except that it does not modify gcountbasic_istream::seekg
, except that it first clearseofbit
and does not modify gcountstd::ws
, except that it does not modify gcount
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com