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.
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.
Constructors
Constructs an object of type basic_istream.  | 
Member Functions
Returns the number of characters read during the last unformatted input.  | 
|
Reads one or more characters from the input stream.  | 
|
Reads a line from the input stream.  | 
|
Causes a number of elements to be skipped from the current read position.  | 
|
Returns the next character to be read.  | 
|
Puts a specified character into the stream.  | 
|
Reads a specified number of characters from the stream and stores them in an array.  | 
|
Read from buffer only.  | 
|
Moves the read position in a stream.  | 
|
The nested class describes an object whose declaration structures the formatted input functions and the unformatted input functions.  | 
|
Exchanges this basic_istream object for the provided basic_istream object parameter.  | 
|
Synchronizes the input device associated with the stream with the stream's buffer.  | 
|
Reports the current read position in the stream.  | 
|
Puts the most recently read character back into the stream.  | 
Operators
Calls a function on the input stream or reads formatted data from the input stream.  | 
|
Assigns the basic_istream on the right side of the operator to this object. This is a move assignment involving an rvalue reference that does not leave a copy behind.  | 
Requirements
Header: <istream>
Namespace: std