<istream>

<istream>

namespace std {
        // DECLARATIONS
    template<class E, class T = char_traits<E> >
        class basic_istream;
    typedef basic_istream<char, char_traits<char> > istream;
    typedef basic_istream<wchar_t, char_traits<wchar_t> > wistream;
    template<class E, class T = char_traits<E> >
        class basic_iostream;
    typedef basic_iostream<char, char_traits<char> > iostream;
    typedef basic_iostream<wchar_t, char_traits<wchar_t> > wiostream;
//      EXTRACTORS
    template<class E, class T>
        basic_istream<E, T>& operator>>(basic_istream<E, T> is, E *s);
    template<class E, class T>
        basic_istream<E, T>& operator>>(basic_istream<E, T> is, E& c);
    template<class T>
        basic_istream<char, T>& operator>>(basic_istream<char, T> is, signed char *s);
    template<class T>
        basic_istream<char, T>& operator>>(basic_istream<char, T> is, signed char& c);
    template<class T>
        basic_istream<char, T>& operator>>(basic_istream<char, T> is, unsigned char *s);
    template<class T>
        basic_istream<char, T>& operator>>(basic_istream<char, T> is, unsigned char& c);
//      MANIPULATOR
    template class<E, T>
        basic_istream<E, T>& ws(basic_istream<E, T> is);
    };

Include the iostreams standard header <istream> to define template class basic_istream, which mediates extractions for the iostreams, and the template class basic_iostream, which mediates both insertions and extractions. The header also defines a related manipulator. (This header is typically included for you by another of the iostreams headers. You seldom have occasion to include it directly.)