⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 istream.h

📁 早期freebsd实现
💻 H
字号:
// This may look like C code, but it is really -*- C++ -*-/* Copyright (C) 1989, 1992 Free Software Foundation    written by Doug Lea (dl@rocky.oswego.edu)This file is part of the GNU C++ Library.  This library is freesoftware; you can redistribute it and/or modify it under the terms ofthe GNU Library General Public License as published by the FreeSoftware Foundation; either version 2 of the License, or (at youroption) any later version.  This library is distributed in the hopethat it will be useful, but WITHOUT ANY WARRANTY; without even theimplied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULARPURPOSE.  See the GNU Library General Public License for more details.You should have received a copy of the GNU Library General PublicLicense along with this library; if not, write to the Free SoftwareFoundation, 675 Mass Ave, Cambridge, MA 02139, USA.*//* *** Version 1.2 -- nearly 100% AT&T 1.2 compatible *** *//* istream.h now separately includable */#ifndef _istream_h#ifdef __GNUG__#pragma interface#endif#define _istream_h 1#include <File.h>#include <streambuf.h>#include <filebuf.h>#include <Filebuf.h>class whitespace                // a class used only to input and{                               // discard white space characters  char filler;                     };class ostream;class istream{  friend void   eatwhite(istream& s);protected:  streambuf*    bp;  state_value   state;           // _good/_eof/_fail/_bad  ostream*      tied_to;  char          skipws;  char          ownbuf;  void          _flush();  char*         readline (int chunk_number, char terminator);  public:                istream(const char* filename, io_mode m, access_mode a,                         int sk=1, ostream* t = 0);                istream(const char* filename, const char* m,                         int sk=1, ostream* t = 0);                istream(int filedesc, io_mode m, int sk=1, ostream* t = 0);                istream(FILE* fileptr, int sk=1, ostream* t = 0);                istream(int sz, char* buf, int sk=1, ostream* t = 0);                istream(int filedesc, int sk=1, ostream* t = 0);                istream(int filedesc, char* buf, int buflen,                         int sk, ostream* t = 0);                istream(streambuf* s, int sk=1, ostream* t = 0);               ~istream();  istream&      open(const char* filename, io_mode m, access_mode a);  istream&      open(const char* filename, const char* m);  istream&      open(int  filedesc, io_mode m);  istream&      open(FILE* fileptr);  istream&      open(const char* filenam, open_mode m);  istream&      close();  ostream*      tie(ostream* s);  int           skip(int);// stream status  int           rdstate();  int           eof();  int           fail();  int           bad();  int           good();// other status queries  int           readable();  int           writable();  int           is_open();                operator void*();  int           operator !();  const char*   name();  char*         bufptr();// error handling  void          error();  void          clear(state_value f = _good); // poorly named  void          set(state_value f); // set corresponding bit  void          unset(state_value f); // clear corresponding bit  istream&      failif(int cond);// unformatted IO  istream&      get(char& c);  istream&      unget(char c);  istream&      putback(char c); // a synonym for unget  istream&      get    (char* s, int n, char terminator = '\n');  istream&      getline(char* s, int n, char terminator = '\n');  istream&      gets   (char **s, char terminator = '\n');  istream&      operator >> (char&   c);  istream&      operator >> (short&  n);  istream&      operator >> (unsigned short& n);  istream&      operator >> (int&    n);  istream&      operator >> (unsigned int& n);  istream&      operator >> (long&   n);  istream&      operator >> (unsigned long& n);#ifdef __GNUG__  istream&      operator >> (long long& n);  istream&      operator >> (unsigned long long& n);#endif  istream&      operator >> (float&  n);  istream&      operator >> (double& n);  istream&      operator >> (char*   s);  istream&      operator >> (whitespace& w);};// pre-declared streamsextern istream  cin;             // stdinextern whitespace WS;            // for convenience (Old name)extern whitespace ws;            // for convenience (iostream-style name)#if defined(__OPTIMIZE__) || defined(USE_LIBGXX_INLINES)inline void istream::clear(state_value flag){  state = flag;}inline void istream::set(state_value flag){  state = state_value(int(state) | int(flag));}inline void istream::unset(state_value flag){  state = state_value(int(state) & ~int(flag));}inline int istream::rdstate(){  return int(state);}inline int istream::good(){  return state == _good;}inline int istream::eof(){  return int(state) & int(_eof);}inline int istream::fail(){  return int(state) & int(_fail);}inline int istream::bad(){  return int(state) & int(_bad);}inline istream::operator void*(){  return (state == _good)? this : 0;}inline int istream::operator !(){  return (state != _good);}inline istream& istream::failif(int cond){  if (cond) set(_fail); return *this;}inline int istream::is_open(){  return bp->is_open();}inline int istream::readable(){  return (bp != 0) && (bp->is_open()) && (state == _good);}inline int istream::writable(){  return 0;}inline char* istream::bufptr(){  return bp->base;}inline istream& istream::close(){  bp->close();  return *this;}inline int istream::skip(int sk){  int was = skipws; skipws = sk; return was;}inline istream& istream::unget(char c){  if (bp->sputbackc(c) == EOF) set(_fail); return *this;}inline istream& istream::putback(char c){  if (bp->sputbackc(c) == EOF) set(_fail); return *this;}inline void eatwhite(istream& s){  s >> WS;}#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -