<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-65  評論-68  文章-4  trackbacks-0

    #include "iostream.h"
    #include "stdlib.h"
    #include "stdio.h"
    #include "io.h"

    class BinOutputer{
     private:
      FILE * outputFile;
      char buffer;
      int bit;

      char getBitPo(int i){
       if(i>7){
        cout<<"Inner bit error!"<<endl;
        exit(1);
       }
       int total=1;
       for(int j=0;j<i;j++)
        total*=2;
       return total;
      }

     public:
      BinOutputer(const char * fileName){
       outputFile=NULL;
       outputFile=fopen(fileName,"w+");
       if(outputFile==NULL){
        cout<<"Cannot open the output file."<<endl;
        exit(1);
       }
       bit=7;
       buffer=0;
      }

      FILE* getOutputFile(){
       return outputFile;
      }

      void outputABit(int i){
       cerr<<i;
       switch(i){
       case 1:
        buffer+=getBitPo(bit);
       case 0:
        bit--;
        if(bit==-1){
         bit=7;
         putc(buffer,outputFile);
         cerr<<"\tBuffer output:"<<(long)buffer<<endl;
         buffer=0;
        }
        break;
       default:
        cout<<"Bit output error!"<<endl;
        exit(1);
       }
      }

      void endOutput(){
       if(bit!=7){
        putc(buffer,outputFile);
        cerr<<"Buffer output:"<<(long)buffer<<endl;
       }
       fclose(outputFile);
      }

    };

    class BinInputer{
     private:
      FILE * inputFile;
      char buffer;
      int bit;

      char getBitPo(int i){
       if(i>7){
        cout<<"Inner bit error!"<<endl;
        exit(1);
       }
       int total=1;
       for(int j=0;j<i;j++)
        total*=2;
       return total;
      }

     public:
      BinInputer(const char * fileName){
       inputFile=NULL;
       inputFile=fopen(fileName,"r");
       if(inputFile==NULL){
        cout<<"Cannot open the output file."<<endl;
        exit(1);
       }
       bit=-1;
       buffer=0;
      }

      FILE* getInputFile(){
       return inputFile;
      }

      int inputABit(){
       if(bit==-1){
        bit=7;
        if((buffer=getc(inputFile))==EOF){ 
         return -1;
        }
       }
       int temp=getBitPo(bit);
       bit--;
       
       if((unsigned)buffer>=(unsigned)temp){
        buffer=(char)((unsigned)buffer-(unsigned)temp);
        //cerr<<'1';
        return 1;
       }
       else{
        //cerr<<'0';
        return 0;
       }

      }

      void endInput(){
       fclose(inputFile);
      }

    };

    posted on 2005-04-23 23:07 小爽 閱讀(694) 評論(0)  編輯  收藏 所屬分類: 我的經(jīng)驗
    主站蜘蛛池模板: 免费人成年轻人电影| 国产精品色拉拉免费看| 亚洲成aⅴ人片久青草影院| 亚洲人成日本在线观看| 91免费播放人人爽人人快乐| 亚洲欧洲日本国产| 国产v精品成人免费视频400条| 亚洲国产日韩女人aaaaaa毛片在线| 可以免费看的卡一卡二| 亚洲色图激情文学| 亚洲AV成人无码久久精品老人| 国内精品99亚洲免费高清| 亚洲成AV人网址| 两性色午夜免费视频| 亚洲av无码精品网站| 最近免费mv在线电影| 亚洲成人激情小说| 免费国产a国产片高清| 国产成人精品免费视频大全| 一本久久a久久精品亚洲| 久久久久免费精品国产小说| 亚洲国产成人久久精品app| 成人免费无码精品国产电影| 日本视频免费观看| 久久久久亚洲精品美女| 猫咪社区免费资源在线观看| 国产精品成人亚洲| 亚洲国产精品一区二区成人片国内| 久久午夜夜伦鲁鲁片免费无码影视| 亚洲国产日韩视频观看| 亚洲国产精品综合久久一线| 久久国产精品成人免费| 国产精品亚洲精品观看不卡| 亚洲高清免费视频| 最近2019免费中文字幕6| 亚洲s码欧洲m码吹潮| 亚洲精品乱码久久久久久中文字幕 | 亚洲精品国产日韩无码AV永久免费网| 亚洲国产婷婷六月丁香| 青春禁区视频在线观看直播免费| 免费VA在线观看无码|