// istream standard header
#ifndef _ISTREAM_
#define _ISTREAM_
#include <streambuf>
// class istream
class istream : virtual public ios {
public:
istream(streambuf *_S)
: _Chcount(0), ios(_S) {}
istream(_Uninitialized)
: ios(_Noinit) {}
virtual ~istream();
_Bool ipfx(int = 0);
void isfx()
{}
istream& operator>>(istream& (*_F)(istream&))
{return ((*_F)(*this)); }
istream& operator>>(ios& (*_F)(ios&))
{(*_F)(*(ios *)this); return (*this); }
istream& operator>>(char *);
istream& operator>>(unsigned char *_S)
{return (*this >> (char *)_S); }
istream& operator>>(char&);
istream& operator>> (unsigned char& _C)
{return (*this >> *(char *)&_C); }
istream& operator>>(short&);
istream& operator>>(unsigned short&);
istream& operator>>(int&);
istream& operator>>(unsigned int&);
istream& operator>>(long&);
istream& operator>>(unsigned long&);
istream& operator>>(float&);
istream& operator>>(double&);
istream& operator>>(long double&);
istream& operator>>(void *&);
istream& operator>>(streambuf&);
int get();
istream& get(char *, int, char = '\n');
istream& get(unsigned char *_S, int _N, char _D = '\n')
{return(get((char *)_S, _N, _D)); }
istream& get(char&);
istream& get(unsigned char& _C)
{return (get((char&)_C)); }
istream& get(streambuf&, char = '\n');
istream& getline(char *, int, char = '\n');
istream& getline(unsigned char *_S, int _N, char _D = '\n')
{return(getline((char *)_S, _N, _D)); }
istream& ignore(int = 1, int = EOF);
istream& read(char *, int);
istream& read(unsigned char *_S, int _N)
{return(read((char *)_S, _N)); }
int peek();
istream& putback(char);
istream& unget();
int gcount() const
{return (_Chcount); }
int sync();
#if _SIGNED_CHAR_IS_DISTINCT
istream& operator>>(signed char *_S)
{return (*this >> (char *)_S); }
istream& operator>>(signed char& _C)
{return (*this >> *(char *)&_C); }
istream& get(signed char *_S, int _N, char _D = '\n')
{return (get((char *)_S, _N, _D)); }
istream& get(signed char& _C)
{return (get((char&)_C); }
istream& getline(signed char *_S, int _N, char _D = '\n')
{return (getline((char *)_S, _N, _D)); }
istream& read(signed char *_S, int _N)
{return (read((char *)_S, _N)); }
#endif /* _SIGNED_CHAR_IS_DISTINCT */
protected:
int_Getffld(char [_MAX_EXP_DIG+_MAX_SIG_DIG+16]);
int_Getifld(char [_MAX_INT_DIG]);
private:
int _Chcount;
};
// manipulators
istream& ws(istream&);
#endif
// End of File