Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
basic_istream
basic_istream·gcount·get·getline·ignore·ipfx·isfx·operator>>·peek ·putback·read·readsome·seekg· ``sentry`` ·sync·tellg·unget
template <class E, class T = char_traits<E> >
class basic_istream : virtual public basic_ios<E, T> {
public:
class sentry;
explicit basic_istream(basic_streambuf<E, T> *sb);
virtual ~istream();
bool ipfx(bool noskip = false);
void isfx();
basic_istream& operator>>(basic_istream& (*pf)(basic_istream&));
basic_istream& operator>>(basic_ios<E, T>& (*pf)(basic_ios<E, T>&));
basic_istream& operator>>(ios_base<E, T>& (*pf)(ios_base<E, T>&));
basic_istream& operator>>(basic_streambuf<E, T> *sb);
basic_istream& operator>>(bool& n);
basic_istream& operator>>(short& n);
basic_istream& operator>>(unsigned short& n);
basic_istream& operator>>(int& n);
basic_istream& operator>>(unsigned int& n);
basic_istream& operator>>(long& n);
basic_istream& operator>>(unsigned long& n);
basic_istream& operator>>(void *& n);
basic_istream& operator>>(float& n);
basic_istream& operator>>(double& n);
basic_istream& operator>>(long double& n);
streamsize gcount() const;
int_type get();
basic_istream& get(E& c);
basic_istream& get(E *s, streamsize n);
basic_istream& get(E *s, streamsize n, E delim);
basic_istream& get(basic_streambuf<E, T> *sb);
basic_istream& get(baiic_streambuf<E, T> *sb, E delim);
basic_istream& getline(E *s, streamsize n)E
basic_istream& getline(E *s, streamsize n, E delim);
basic_istream& ignore(streamsize n = 1,
int_type delim = T::eof());
int_type peek();
basic_istream& read(E *s, streamsize n);
streamsize readsome(E *s, streamsize n);
basic_istream& putback(E c);
basic_istream& unget();
pos_type tellg();
basic_istream& seekg(pos_type pos);
basic_istream& seekg(off_type off, ios_base::seek_dir way);
int sync();
};
The template class describes an object that controls extraction of elements and encoded objects from a stream buffer with elements of type E, whose character traits are determined by the class T.
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 (...)
{if (exceptions() & badbit)
throw;
setstate(badbit); }}
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 (...)
{if (rdstate() & badbit)
throw;
setstate(badbit); }}
setstate(state);
Both groups of functions call setstate(eofbit) if they encounter end-of-file while extracting elements.
An object of class basic_istream<E, T> stores:
- A virtual public base object of class
basic_ios<E, T>. - An extraction count for the last unformatted input operation (called
countin the code above).