Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Describes an object that controls extraction of elements and encoded objects from a stream buffer with elements of type Elem, also known as char_type, whose character traits are determined by the class Tr, also known as traits_type.
For a list of all members of this type, see basic_istream Members.
template <class Elem, class Tr = char_traits<Elem> >
class basic_istream
: virtual public basic_ios<Elem, Tr>
Remarks
Most of the member functions that overload operator>> are formatted input functions. They follow the pattern:
iostate state = goodbit;
const sentry ok(*this);
if (ok)
{try
{<extract elements and convert
accumulate flags in state
store a successful conversion> }
catch (...)
{try
{setstate(badbit); }
catch (...)
{}
if ((exceptions( ) & badbit) != 0)
throw; }}
setstate(state);
return (*this);
Many other member functions are unformatted input functions. They follow the pattern:
iostate state = goodbit;
count = 0; // the value returned by gcount
const sentry ok(*this, true);
if (ok)
{try
{<extract elements and deliver
count extracted elements in count
accumulate flags in state> }
catch (...)
{try
{setstate(badbit); }
catch (...)
{}
if ((exceptions( ) & badbit) != 0)
throw; }}
setstate(state);
Both groups of functions call setstate(eofbit) if they encounter end of file while extracting elements.
An object of class basic_istream<Elem, Tr> stores:
A virtual public base object of class basic_ios<Elem, Tr>.
An extraction count for the last unformatted input operation (called count in the previous code).
Example
See the example for basic_ifstream Class to learn more about input streams.
Requirements
Header: <istream>
Namespace: std
See Also
Reference
Thread Safety in the Standard C++ Library