<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)  編輯  收藏 所屬分類: 我的經驗
    主站蜘蛛池模板: 亚洲一区在线免费观看| 97在线免费视频| 午夜性色一区二区三区免费不卡视频 | 日韩精品无码免费一区二区三区 | 亚洲精品国产首次亮相| 国产精品久久久久久久久久免费| 亚洲最大激情中文字幕| www免费插插视频| 成人午夜亚洲精品无码网站| 国产日韩AV免费无码一区二区三区| 免费在线观看a级毛片| 国产精品自拍亚洲| 亚洲精品乱码久久久久久蜜桃 | 美女视频黄频a免费观看| 亚洲av无码专区在线观看素人| 久久亚洲AV成人无码国产电影 | 免费A级毛片在线播放不收费| 国产精品亚洲AV三区| 免费人成年激情视频在线观看 | 亚洲国产综合人成综合网站00| 久久久久久毛片免费播放| 亚洲av永久无码精品三区在线4 | 日本一区二区免费看| 亚洲人成综合在线播放| 免费无码又爽又刺激高潮的视频| 亚洲国产AV无码一区二区三区| 国产在线观看免费完整版中文版| 美女尿口扒开图片免费| 亚洲成av人片天堂网| 久久精品免费全国观看国产| 黄床大片30分钟免费看| 亚洲动漫精品无码av天堂| 麻豆视频免费观看| 看免费毛片天天看| 亚洲三级电影网站| 国产色婷婷精品免费视频| 毛片免费在线观看| 亚洲日韩一区精品射精| 国产AV无码专区亚洲AVJULIA| 97国产免费全部免费观看 | 久久久久亚洲国产AV麻豆|