Standard library header <istream>
From cppreference.com
This header is part of the input/output library.
Classes | ||
wraps a given abstract device (std::basic_streambuf) and provides high-level input interface (class template) | ||
std::istream | std::basic_istream<char> (typedef) | |
std::wistream | std::basic_istream<wchar_t> (typedef) | |
wraps a given abstract device (std::basic_streambuf) and provides high-level input/output interface (class template) | ||
std::iostream | std::basic_iostream<char> (typedef) | |
std::wiostream | std::basic_iostream<wchar_t> (typedef) | |
Functions | ||
extracts characters and character arrays (function template) | ||
Manipulators | ||
consumes whitespace (function template) |
[edit]Synopsis
namespace std {template<class CharT, class Traits = char_traits<CharT>>class basic_istream; using istream = basic_istream<char>;using wistream = basic_istream<wchar_t>; template<class CharT, class Traits = char_traits<CharT>>class basic_iostream; using iostream = basic_iostream<char>;using wiostream = basic_iostream<wchar_t>; template<class CharT, class Traits> basic_istream<CharT, Traits>& ws(basic_istream<CharT, Traits>& is); template<class Istream, class T> Istream&& operator>>(Istream&& is, T&& x);}
[edit]Class template std::basic_istream
namespace std {template<class CharT, class Traits = char_traits<CharT>>class basic_istream :virtualpublic basic_ios<CharT, Traits>{public:// types (inherited from basic_ios)using char_type = CharT;using int_type =typename Traits::int_type;using pos_type =typename Traits::pos_type;using off_type =typename Traits::off_type;using traits_type = Traits; // constructor/destructorexplicit basic_istream(basic_streambuf<CharT, Traits>* sb);virtual ~basic_istream(); // prefix/suffixclass sentry; // formatted input basic_istream<CharT, Traits>& operator>>(basic_istream<CharT, Traits>&(*pf)(basic_istream<CharT, Traits>&)); basic_istream<CharT, Traits>& operator>>(basic_ios<CharT, Traits>&(*pf)(basic_ios<CharT, Traits>&)); basic_istream<CharT, Traits>& operator>>(ios_base&(*pf)(ios_base&)); basic_istream<CharT, Traits>& operator>>(bool& n); basic_istream<CharT, Traits>& operator>>(short& n); basic_istream<CharT, Traits>& operator>>(unsignedshort& n); basic_istream<CharT, Traits>& operator>>(int& n); basic_istream<CharT, Traits>& operator>>(unsignedint& n); basic_istream<CharT, Traits>& operator>>(long& n); basic_istream<CharT, Traits>& operator>>(unsignedlong& n); basic_istream<CharT, Traits>& operator>>(longlong& n); basic_istream<CharT, Traits>& operator>>(unsignedlonglong& n); basic_istream<CharT, Traits>& operator>>(float& f); basic_istream<CharT, Traits>& operator>>(double& f); basic_istream<CharT, Traits>& operator>>(longdouble& f); basic_istream<CharT, Traits>& operator>>(void*& p); basic_istream<CharT, Traits>& operator>>(basic_streambuf<char_type, Traits>* sb); // unformatted input streamsize gcount()const; int_type get(); basic_istream<CharT, Traits>& get(char_type& c); basic_istream<CharT, Traits>& get(char_type* s, streamsize n); basic_istream<CharT, Traits>& get(char_type* s, streamsize n, char_type delim); basic_istream<CharT, Traits>& get(basic_streambuf<char_type, Traits>& sb); basic_istream<CharT, Traits>& get(basic_streambuf<char_type, Traits>& sb, char_type delim); basic_istream<CharT, Traits>& getline(char_type* s, streamsize n); basic_istream<CharT, Traits>& getline(char_type* s, streamsize n, char_type delim); basic_istream<CharT, Traits>& ignore(streamsize n =1, int_type delim = Traits::eof()); int_type peek(); basic_istream<CharT, Traits>& read (char_type* s, streamsize n); streamsize readsome(char_type* s, streamsize n); basic_istream<CharT, Traits>& putback(char_type c); basic_istream<CharT, Traits>& unget();int sync(); pos_type tellg(); basic_istream<CharT, Traits>& seekg(pos_type); basic_istream<CharT, Traits>& seekg(off_type, ios_base::seekdir); protected:// copy/move constructor basic_istream(const basic_istream&)= delete; basic_istream(basic_istream&& rhs); // assign and swap basic_istream& operator=(const basic_istream&)= delete; basic_istream& operator=(basic_istream&& rhs);void swap(basic_istream& rhs);}; // character extraction templatestemplate<class CharT, class Traits> basic_istream<CharT, Traits>& operator>>(basic_istream<CharT, Traits>&, CharT&);template<class Traits> basic_istream<char, Traits>& operator>>(basic_istream<char, Traits>&, unsignedchar&);template<class Traits> basic_istream<char, Traits>& operator>>(basic_istream<char, Traits>&, signedchar&); template<class CharT, class Traits, size_t N> basic_istream<CharT, Traits>& operator>>(basic_istream<CharT, Traits>&, CharT(&)[N]);template<class Traits, size_t N> basic_istream<char, Traits>& operator>>(basic_istream<char, Traits>&, unsignedchar(&)[N]);template<class Traits, size_t N> basic_istream<char, Traits>& operator>>(basic_istream<char, Traits>&, signedchar(&)[N]);}
[edit]Class std::basic_istream::sentry
namespace std {template<class CharT, class Traits = char_traits<CharT>>class basic_istream<CharT, Traits>::sentry{bool ok_;// exposition onlypublic:explicit sentry(basic_istream<CharT, Traits>& is, bool noskipws =false); ~sentry();explicit operator bool()const{return ok_;} sentry(const sentry&)= delete; sentry& operator=(const sentry&)= delete;};}
[edit]Class template std::basic_iostream
namespace std {template<class CharT, class Traits = char_traits<CharT>>class basic_iostream :public basic_istream<CharT, Traits>, public basic_ostream<CharT, Traits>{public:using char_type = CharT;using int_type =typename Traits::int_type;using pos_type =typename Traits::pos_type;using off_type =typename Traits::off_type;using traits_type = Traits; // constructorexplicit basic_iostream(basic_streambuf<CharT, Traits>* sb); // destructorvirtual ~basic_iostream(); protected:// constructor basic_iostream(const basic_iostream&)= delete; basic_iostream(basic_iostream&& rhs); // assign and swap basic_iostream& operator=(const basic_iostream&)= delete; basic_iostream& operator=(basic_iostream&& rhs);void swap(basic_iostream& rhs);};}