Each unformatted input function begins execution by constructing
an object of type 
ios_base::iostate, termed the local error state, and
initializing it to 
ios_base::goodbit.It then creates an object of class
sentry
with the default argument
noskipws
(second) argument
true.If the
sentry
object returns
true,
when converted to a value of type
bool,
the function endeavors
to obtain the requested input
.Otherwise, if the 
sentry constructor exits by throwing an exception or if
the 
sentry object produces 
false, when converted to a value of type
bool,
the function returns without attempting to obtain any input
.In either case the number of extracted characters is set to 0;
unformatted input functions taking a character array of nonzero size as
an argument shall also store a null character (using
charT())
in the first location of the array
.If 
rdbuf()->sbumpc() or 
rdbuf()->sgetc()
returns 
traits::eof(), then
ios_base::eofbit is set in the local error state and
the input function stops trying to obtain the requested input
.If an exception is thrown during input then
ios_base::badbit is set in the local error state,
*this's error state is set to the local error state, and
the exception is rethrown if 
(exceptions() & badbit) != 0.If no exception has been thrown it
stores the number of characters extracted
in a member object
.After extraction is done, the input function calls 
setstate, which
sets 
*this's error state to the local error state, and
may throw an exception
.In any event the
sentry
object
is destroyed before leaving the unformatted input function
.