basic_istream Class
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