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

📄 zfstream.h

📁 gcc的组建
💻 H
字号:
#ifndef zfstream_h#define zfstream_h#include <fstream.h>#include "zlib.h"class gzfilebuf : public streambuf {public:  gzfilebuf( );  virtual ~gzfilebuf();  gzfilebuf *open( const char *name, int io_mode );  gzfilebuf *attach( int file_descriptor, int io_mode );  gzfilebuf *close();  int setcompressionlevel( int comp_level );  int setcompressionstrategy( int comp_strategy );  inline int is_open() const { return (file !=NULL); }  virtual streampos seekoff( streamoff, ios::seek_dir, int );  virtual int sync();protected:  virtual int underflow();  virtual int overflow( int = EOF );private:  gzFile file;  short mode;  short own_file_descriptor;  int flushbuf();  int fillbuf();};class gzfilestream_common : virtual public ios {  friend class gzifstream;  friend class gzofstream;  friend gzofstream &setcompressionlevel( gzofstream &, int );  friend gzofstream &setcompressionstrategy( gzofstream &, int );public:  virtual ~gzfilestream_common();  void attach( int fd, int io_mode );  void open( const char *name, int io_mode );  void close();protected:  gzfilestream_common();private:  gzfilebuf *rdbuf();  gzfilebuf buffer;};class gzifstream : public gzfilestream_common, public istream {public:  gzifstream();  gzifstream( const char *name, int io_mode = ios::in );  gzifstream( int fd, int io_mode = ios::in );  virtual ~gzifstream();};class gzofstream : public gzfilestream_common, public ostream {public:  gzofstream();  gzofstream( const char *name, int io_mode = ios::out );  gzofstream( int fd, int io_mode = ios::out );  virtual ~gzofstream();};template<class T> class gzomanip {  friend gzofstream &operator<<(gzofstream &, const gzomanip<T> &);public:  gzomanip(gzofstream &(*f)(gzofstream &, T), T v) : func(f), val(v) { }private:  gzofstream &(*func)(gzofstream &, T);  T val;};template<class T> gzofstream &operator<<(gzofstream &s, const gzomanip<T> &m){  return (*m.func)(s, m.val);}inline gzofstream &setcompressionlevel( gzofstream &s, int l ){  (s.rdbuf())->setcompressionlevel(l);  return s;}inline gzofstream &setcompressionstrategy( gzofstream &s, int l ){  (s.rdbuf())->setcompressionstrategy(l);  return s;}inline gzomanip<int> setcompressionlevel(int l){  return gzomanip<int>(&setcompressionlevel,l);}inline gzomanip<int> setcompressionstrategy(int l){  return gzomanip<int>(&setcompressionstrategy,l);}#endif

⌨️ 快捷键说明

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