This header is part of theinput/output library.
Classes | ||
wraps a given abstract device (std::basic_streambuf) and provides high-level input interface (class template)[edit] | ||
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)[edit] | ||
std::iostream | std::basic_iostream<char> (typedef) | |
std::wiostream | std::basic_iostream<wchar_t> (typedef) | |
Functions | ||
extracts characters and character arrays (function template)[edit] | ||
Manipulators | ||
consumes whitespace (function template)[edit] |
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);}
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& operator>>(basic_istream&(*pf)(basic_istream&)); basic_istream& operator>>(basic_ios<CharT, Traits>&(*pf)(basic_ios<CharT, Traits>&)); basic_istream& operator>>(ios_base&(*pf)(ios_base&)); basic_istream& operator>>(bool& n); basic_istream& operator>>(short& n); basic_istream& operator>>(unsignedshort& n); basic_istream& operator>>(int& n); basic_istream& operator>>(unsignedint& n); basic_istream& operator>>(long& n); basic_istream& operator>>(unsignedlong& n); basic_istream& operator>>(longlong& n); basic_istream& operator>>(unsignedlonglong& n); basic_istream& operator>>(float& f); basic_istream& operator>>(double& f); basic_istream& operator>>(longdouble& f); basic_istream& operator>>(/*extended-floating-point-type*/& f); basic_istream& operator>>(void*& p); basic_istream& operator>>(basic_streambuf<char_type, Traits>* sb); // unformatted input streamsize gcount()const; int_type get(); basic_istream& get(char_type& c); basic_istream& get(char_type* s, streamsize n); basic_istream& get(char_type* s, streamsize n, char_type delim); basic_istream& get(basic_streambuf<char_type, Traits>& sb); basic_istream& get(basic_streambuf<char_type, Traits>& sb, char_type delim); basic_istream& getline(char_type* s, streamsize n); basic_istream& getline(char_type* s, streamsize n, char_type delim); basic_istream& ignore(streamsize n=1, int_type delim= Traits::eof()); int_type peek(); basic_istream& read(char_type* s, streamsize n); streamsize readsome(char_type* s, streamsize n); basic_istream& putback(char_type c); basic_istream& unget();int sync(); pos_type tellg(); basic_istream& seekg(pos_type); basic_istream& seekg(off_type, ios_base::seekdir); protected:// copy/move constructor basic_istream(const basic_istream&)= delete; basic_istream(basic_istream&& rhs); // assignment 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]);}
namespace std{template<class CharT,class Traits>class basic_istream<CharT, Traits>::sentry{bool ok_;// exposition onlypublic:explicit sentry(basic_istream& is,bool noskipws=false); ~sentry();explicit operatorbool()const{return ok_;} sentry(const sentry&)= delete; sentry& operator=(const sentry&)= delete;};}
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); // assignment and swap basic_iostream& operator=(const basic_iostream&)= delete; basic_iostream& operator=(basic_iostream&& rhs);void swap(basic_iostream& rhs);};}