<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)  編輯  收藏 所屬分類: 我的經驗
    主站蜘蛛池模板: 亚洲精品不卡视频| 亚洲春色在线视频| 亚洲一区二区三区在线观看网站| 99久久国产免费中文无字幕| 免费一级毛片在线播放放视频 | 亚洲成a人片7777| 中文字幕亚洲免费无线观看日本 | 亚洲精品韩国美女在线| 久久国产免费一区二区三区| 亚洲AV乱码一区二区三区林ゆな| 成人无码a级毛片免费| 亚洲av无码乱码国产精品| 精品亚洲AV无码一区二区三区 | 亚洲日韩国产二区无码| 啦啦啦手机完整免费高清观看| 亚洲人成人无码.www石榴| 免费观看美女裸体网站| 国产精品亚洲一区二区三区| 久操视频在线免费观看| 亚洲精品一卡2卡3卡三卡四卡| 黄瓜视频高清在线看免费下载| 国产A在亚洲线播放| 91在线手机精品免费观看| 中文字幕在线日亚洲9| 日本免费福利视频| 国产A∨免费精品视频| 无码专区—VA亚洲V天堂| 国产精品免费网站| 国产91成人精品亚洲精品| 亚洲日产无码中文字幕| 亚洲精品视频免费看| 看亚洲a级一级毛片| 最近免费中文字幕视频高清在线看 | 黄色毛片视频免费| 亚洲女久久久噜噜噜熟女| 国产成人精品免费视频动漫| 豆国产96在线|亚洲| 亚洲va中文字幕无码久久不卡| 114一级毛片免费| 免费夜色污私人影院网站电影| 亚洲今日精彩视频|