libstdc++
|
Classes | |
class | sentry |
Public Types | |
typedef ctype< _CharT > | __ctype_type |
typedef basic_ios< _CharT, _Traits > | __ios_type |
typedef basic_istream< _CharT, _Traits > | __istream_type |
typedef num_get< _CharT, istreambuf_iterator< _CharT, _Traits > > | __num_get_type |
typedef basic_streambuf< _CharT, _Traits > | __streambuf_type |
typedef _CharT | char_type |
typedef _Traits::int_type | int_type |
typedef _Traits::off_type | off_type |
typedef _Traits::pos_type | pos_type |
typedef _Traits | traits_type |
Public Member Functions | |
basic_istream (__streambuf_type *__sb) | |
virtual | ~basic_istream () |
template<typename _ValueT > | |
basic_istream< _CharT, _Traits > & | _M_extract (_ValueT &__v) |
basic_istream< char > & | getline (char_type *__s, streamsize __n, char_type __delim) |
basic_istream< wchar_t > & | getline (char_type *__s, streamsize __n, char_type __delim) |
basic_istream< char > & | ignore (streamsize __n) |
basic_istream< wchar_t > & | ignore (streamsize __n) |
basic_istream< char > & | ignore (streamsize __n, int_type __delim) |
basic_istream< wchar_t > & | ignore (streamsize __n, int_type __delim) |
__istream_type & | operator>> (__ios_type &(*__pf)(__ios_type &)) |
__istream_type & | operator>> (__istream_type &(*__pf)(__istream_type &)) |
__istream_type & | operator>> (ios_base &(*__pf)(ios_base &)) |
Protected Attributes | |
streamsize | _M_gcount |
Friends | |
class | sentry |
Unformatted Input Functions | |
All the unformatted input functions have some common behavior. Each starts by constructing a temporary object of type std::basic_istream::sentry with the second argument (noskipws) set to true. This has several effects, concluding with the setting of a status flag; see the sentry documentation for more. If the sentry status is good, the function tries to extract whatever data is appropriate for the type of the argument. The number of characters extracted is stored for later retrieval by gcount(). If an exception is thrown during extraction, ios_base::badbit will be turned on in the stream's error state (without causing an ios_base::failure to be thrown) and the original exception will be rethrown if badbit is set in the exceptions mask. | |
int_type | get () |
__istream_type & | get (char_type &__c) |
__istream_type & | get (char_type *__s, streamsize __n, char_type __delim) |
__istream_type & | get (char_type *__s, streamsize __n) |
__istream_type & | get (__streambuf_type &__sb, char_type __delim) |
__istream_type & | get (__streambuf_type &__sb) |
__istream_type & | getline (char_type *__s, streamsize __n, char_type __delim) |
__istream_type & | getline (char_type *__s, streamsize __n) |
__istream_type & | ignore (streamsize __n, int_type __delim) |
__istream_type & | ignore (streamsize __n) |
__istream_type & | ignore () |
int_type | peek () |
__istream_type & | read (char_type *__s, streamsize __n) |
streamsize | readsome (char_type *__s, streamsize __n) |
__istream_type & | putback (char_type __c) |
__istream_type & | unget () |
int | sync () |
pos_type | tellg () |
__istream_type & | seekg (pos_type) |
__istream_type & | seekg (off_type, ios_base::seekdir) |
basic_istream () | |
basic_istream (const basic_istream &)=delete | |
basic_istream (basic_istream &&__rhs) | |
basic_istream & | operator= (const basic_istream &)=delete |
basic_istream & | operator= (basic_istream &&__rhs) |
void | swap (basic_istream &__rhs) |
template<typename _ValueT > | |
__istream_type & | _M_extract (_ValueT &__v) |
Template class basic_istream.
_CharT | Type of character stream. |
_Traits | Traits for character type, defaults to char_traits<_CharT>. |
This is the base class for all input streams. It provides text formatting of all builtin types, and communicates with any class derived from basic_streambuf to do the actual input.
|
inlineexplicit |
|
inlinevirtual |
|
inlineprotected |
|
protecteddelete |
Simple extraction.
Tries to extract a character. If none are available, sets failbit and returns traits::eof().
|
inlineprotected |
|
protected |
Simple extraction.
Tries to extract a character. If none are available, sets failbit and returns traits::eof().
|
inline |
basic_istream< _CharT, _Traits >::int_type std::basic_istream< _CharT, _Traits >::get |
Simple extraction.
Tries to extract a character. If none are available, sets failbit and returns traits::eof().
Definition at line 243 of file istream.tcc.
References std::basic_istream< _CharT, _Traits >::_M_gcount, and std::ios_base::goodbit.
|
inline |
basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::get | ( | __streambuf_type & | __sb, |
char_type | __delim | ||
) |
Extraction into another streambuf.
__sb | A streambuf in which to store data. |
__delim | A "stop" character. |
Characters are extracted and inserted into __sb until one of the following happens:
If no characters are stored, failbit is set in the stream's error state.
Definition at line 363 of file istream.tcc.
References std::basic_istream< _CharT, _Traits >::_M_gcount, and std::ios_base::goodbit.
basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::get | ( | char_type & | __c | ) |
Simple extraction.
__c | The character in which to store data. |
Tries to extract a character and store it in __c. If none are available, sets failbit and returns traits::eof().
Definition at line 279 of file istream.tcc.
References std::basic_istream< _CharT, _Traits >::_M_gcount, and std::ios_base::goodbit.
|
inline |
basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::get | ( | char_type * | __s, |
streamsize | __n, | ||
char_type | __delim | ||
) |
Simple multiple-character extraction.
__s | Pointer to an array. |
__n | Maximum number of characters to store in __s. |
__delim | A "stop" character. |
Characters are extracted and stored into __s until one of the following happens:
__n-1
characters are storedIf no characters are stored, failbit is set in the stream's error state.
In any case, a null character is stored into the next location in the array.
Definition at line 316 of file istream.tcc.
|
inline |
basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::getline | ( | char_type * | __s, |
streamsize | __n, | ||
char_type | __delim | ||
) |
String extraction.
__s | A character array in which to store the data. |
__n | Maximum number of characters to extract. |
__delim | A "stop" character. |
Extracts and stores characters into __s until one of the following happens. Note that these criteria are required to be tested in the order listed here, to allow an input line to exactly fill the __s array without setting failbit.
__delim
, in which case the character is extracted (and therefore counted in gcount()
) but not stored__n-1
characters are stored, in which case failbit is set in the stream error stateIf no characters are extracted, failbit is set. (An empty line of input should therefore not cause failbit to be set.)
In any case, a null character is stored in the next location in the array.
Definition at line 407 of file istream.tcc.
References std::basic_istream< _CharT, _Traits >::_M_gcount, and std::ios_base::goodbit.
basic_istream< char > & std::basic_istream< char >::getline | ( | char_type * | __s, |
streamsize | __n, | ||
char_type | __delim | ||
) |
Explicit specialization declarations, defined in src/istream.cc.
basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::ignore |
Simple extraction.
Tries to extract a character. If none are available, sets failbit and returns traits::eof().
Definition at line 467 of file istream.tcc.
basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::ignore | ( | streamsize | __n | ) |
Simple extraction.
Tries to extract a character. If none are available, sets failbit and returns traits::eof().
Definition at line 500 of file istream.tcc.
References std::basic_istream< _CharT, _Traits >::_M_gcount.
basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::ignore | ( | streamsize | __n, |
int_type | __delim | ||
) |
Discarding characters.
__n | Number of characters to discard. |
__delim | A "stop" character. |
Extracts characters and throws them away until one of the following happens:
!=
std::numeric_limits<int>::max()
, __n characters are extractedtraits::eof()
.NB: Provide three overloads, instead of the single function (with defaults) mandated by the Standard: this leads to a better performing implementation, while still conforming to the Standard.
Definition at line 562 of file istream.tcc.
References std::basic_istream< _CharT, _Traits >::_M_gcount, and std::ios_base::goodbit.
|
inlineprotected |
|
protecteddelete |
Simple extraction.
Tries to extract a character. If none are available, sets failbit and returns traits::eof().
|
inline |
basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::operator>> | ( | __streambuf_type * | __sb | ) |
Extracting into another streambuf.
__sb | A pointer to a streambuf |
This function behaves like one of the basic arithmetic extractors, in that it also constructs a sentry object and has the same error handling behavior.
If __sb
is NULL, the stream will set failbit in its error state.
Characters are extracted from this stream and inserted into the __sb
streambuf until one of the following occurs:
If the function inserts no characters, failbit is set.
Definition at line 211 of file istream.tcc.
References std::ios_base::goodbit.
|
inline |
|
inline |
|
inline |
basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::operator>> | ( | int & | __n | ) |
Integer arithmetic extractors.
__n | A variable of builtin integral type. |
*this
if successfulThese functions use the stream's current locale (specifically, the num_get
facet) to parse the input data.
Definition at line 166 of file istream.tcc.
|
inline |
|
inline |
|
inline |
basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::operator>> | ( | short & | __n | ) |
Integer arithmetic extractors.
__n | A variable of builtin integral type. |
*this
if successfulThese functions use the stream's current locale (specifically, the num_get
facet) to parse the input data.
Definition at line 121 of file istream.tcc.
References std::ios_base::goodbit.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
basic_istream< _CharT, _Traits >::int_type std::basic_istream< _CharT, _Traits >::peek |
Looking ahead in the stream.
If, after constructing the sentry object, good()
is false, returns traits::eof()
. Otherwise reads but does not extract the next input character.
Definition at line 627 of file istream.tcc.
References std::basic_istream< _CharT, _Traits >::_M_gcount, and std::ios_base::goodbit.
basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::putback | ( | char_type | __c | ) |
Unextracting a single character.
__c | The character to push back into the input stream. |
If rdbuf()
is not null, calls rdbuf()->sputbackc(c)
.
If rdbuf()
is null or if sputbackc()
fails, sets badbit in the error state.
gcount()
will return 0, as required by DR 60. Definition at line 718 of file istream.tcc.
References std::basic_istream< _CharT, _Traits >::_M_gcount, std::ios_base::eofbit, and std::ios_base::goodbit.
basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::read | ( | char_type * | __s, |
streamsize | __n | ||
) |
Extraction without delimiters.
__s | A character array. |
__n | Maximum number of characters to store. |
If the stream state is good()
, extracts characters and stores them into __s until one of the following happens:
failbit|eofbit
.Definition at line 657 of file istream.tcc.
References std::basic_istream< _CharT, _Traits >::_M_gcount, and std::ios_base::goodbit.
streamsize std::basic_istream< _CharT, _Traits >::readsome | ( | char_type * | __s, |
streamsize | __n | ||
) |
Extraction until the buffer is exhausted, but no more.
__s | A character array. |
__n | Maximum number of characters to store. |
Extracts characters and stores them into __s depending on the number of characters remaining in the streambuf's buffer, rdbuf()->in_avail()
, called A
here:
A
==
-1
, sets eofbit and extracts no charactersA
==
0
, extracts no charactersA
>
0
, extracts min(A,n)
The goal is to empty the current buffer, and to not request any more from the external input sequence controlled by the streambuf.
Definition at line 686 of file istream.tcc.
References std::basic_istream< _CharT, _Traits >::_M_gcount, and std::ios_base::goodbit.
basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::seekg | ( | off_type | __off, |
ios_base::seekdir | __dir | ||
) |
Changing the current read position.
__off | A file offset object. |
__dir | The direction in which to seek. |
If fail()
is not true, calls rdbuf()->pubseekoff(__off,__dir)
. If that function fails, sets failbit.
gcount()
. Definition at line 891 of file istream.tcc.
References std::ios_base::eofbit, and std::ios_base::goodbit.
basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::seekg | ( | pos_type | __pos | ) |
Changing the current read position.
__pos | A file position object. |
If fail()
is not true, calls rdbuf()->pubseekpos(__pos)
. If that function fails, sets failbit.
gcount()
. Definition at line 852 of file istream.tcc.
References std::ios_base::eofbit, and std::ios_base::goodbit.
|
inlineprotected |
int std::basic_istream< _CharT, _Traits >::sync |
Synchronizing the stream buffer.
If rdbuf()
is a null pointer, returns -1.
Otherwise, calls rdbuf()->pubsync()
, and if that returns -1, sets badbit and returns -1.
Otherwise, returns 0.
gcount()
. Definition at line 788 of file istream.tcc.
References std::ios_base::goodbit.
basic_istream< _CharT, _Traits >::pos_type std::basic_istream< _CharT, _Traits >::tellg |
Getting the current read position.
If fail()
is not false, returns pos_type
(-1) to indicate failure. Otherwise returns rdbuf()->pubseekoff(0,cur,in)
.
gcount()
. At variance with putback, unget and seekg, eofbit is not cleared first. Definition at line 824 of file istream.tcc.
basic_istream< _CharT, _Traits > & std::basic_istream< _CharT, _Traits >::unget |
Unextracting the previous character.
If rdbuf()
is not null, calls rdbuf()->sungetc(c)
.
If rdbuf()
is null or if sungetc()
fails, sets badbit in the error state.
gcount()
will return 0, as required by DR 60. Definition at line 753 of file istream.tcc.
References std::basic_istream< _CharT, _Traits >::_M_gcount, std::ios_base::eofbit, and std::ios_base::goodbit.
Referenced by std::__detail::operator>>().
|
protected |
The number of characters extracted in the previous unformatted function; see gcount().
Definition at line 82 of file istream.
Referenced by std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< char >::get(), std::basic_istream< _CharT, _Traits >::getline(), std::basic_istream< char >::getline(), std::basic_istream< _CharT, _Traits >::ignore(), std::basic_istream< char >::peek(), std::basic_istream< _CharT, _Traits >::peek(), std::basic_istream< _CharT, _Traits >::putback(), std::basic_istream< char >::putback(), std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, _Traits >::readsome(), std::basic_istream< char >::seekg(), std::basic_istream< char >::tellg(), and std::basic_istream< _CharT, _Traits >::unget().