CODE.C
Upload User: szqxhk
Upload Date: 2010-02-15
Package Size: 54k
Code Size: 3k
Development Platform:

Visual C++

  1. #include <stdio.h>
  2. int array[128]={6,33,34,35,36,37,38,39,5,41,42,43,44,45,46,47,
  3. 48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,7,65,66,67,
  4. 68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,
  5. 88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,
  6. 106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,
  7. 121,122,123,124,125,126,127,3,129,130,131,132,133,134,4,
  8. 136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,
  9. 151,152,153,154,155,156,157,158,159};
  10. main( int argc,char * argv[] )
  11. {
  12.   FILE * input_file;
  13.   FILE * output_file;
  14.   unsigned char rackin;
  15.   unsigned char rackout;
  16.   int mask;
  17.   int i,j,flag;
  18.   char out_char;
  19.   unsigned char bit[8];
  20.   char conclude;
  21.   if( ( input_file=fopen( argv[1],"r") )==NULL )
  22.       { printf( "cant open the input_file " );
  23.         exit(0); }
  24.   output_file=fopen( argv[2],"w" );
  25. for( ; ; ){
  26.   mask=0x01;
  27.   rackout=0;
  28.   rackin=getc( input_file ) ;
  29.   conclude=rackin;
  30.   if( conclude==EOF ) break;
  31.   rackout=( rackin>>1 );
  32.   out_char=array[rackout];
  33.   putc( out_char,output_file );
  34.   bit[6]=rackin&mask;
  35.   bit[6]<<=6;
  36.   mask=0x01;
  37.   rackout=0;
  38.   rackin=getc( input_file );
  39.   conclude=rackin;
  40.   if( conclude==EOF ) break;
  41.   rackout=( rackin>>2 );
  42.   rackout |= bit[6];
  43.   out_char=array[rackout];
  44.   putc( out_char,output_file );
  45.   bit[5]=rackin&mask;
  46.   bit[5]<<=5;
  47.   mask<<=1;
  48.   bit[6]=rackin&mask;
  49.   bit[6]<<=5;
  50.   mask=0x01;
  51.   rackout=0;
  52.   rackin=getc( input_file );
  53.   conclude=rackin;
  54.   if( conclude==EOF ) break;
  55.   rackout=( rackin>>3 );
  56.   rackout |= bit[5];
  57.   rackout |= bit[6];
  58.   out_char=array[rackout];
  59.   putc( out_char,output_file );
  60.   bit[4]=rackin&mask;
  61.   bit[4]<<=4;
  62.   mask<<=1;
  63.   bit[5]=rackin&mask;
  64.   bit[5]<<=4;
  65.   mask<<=1;
  66.   bit[6]=rackin&mask;
  67.   bit[6]<<=4;
  68.   mask=0x01;
  69.   rackout=0;
  70.   rackin=getc( input_file );
  71.   conclude=rackin;
  72.   if( conclude==EOF ) break;
  73.   rackout=( rackin>>4 );
  74.   rackout |= bit[4];
  75.   rackout |= bit[5];
  76.   rackout |= bit[6];
  77.   out_char=array[rackout];
  78.   putc( out_char,output_file );
  79.   for( i=3;i<=6;i++ ){
  80.        bit[i]=rackin&mask;
  81.        bit[i]<<=3;
  82.        mask<<=1;
  83.        }
  84.   mask=0x01;
  85.   rackout=0;
  86.   rackin=getc( input_file ) ;
  87.   conclude=rackin;
  88.   if( conclude==EOF ) break;
  89.   rackout=( rackin>>5 );
  90.   for( i=3;i<=6;i++ )
  91.        rackout |= bit[i];
  92.   out_char=array[rackout];
  93.   putc( out_char,output_file );
  94.   for( i=2;i<=6;i++ ){
  95.        bit[i]=rackin&mask;
  96.        bit[i]<<=2;
  97.        mask<<=1;
  98.        }
  99.   mask=0x01;
  100.   rackout=0;
  101.   rackin=getc( input_file );
  102.   conclude=rackin;
  103.   if( conclude==EOF ) break;
  104.   rackout=( rackin>>6 );
  105.   for( i=2;i<=6;i++ )
  106.        rackout |= bit[i];
  107.   out_char=array[rackout];
  108.   putc( out_char,output_file );
  109.   for( i=1;i<=6;i++ ){
  110.        bit[i]=rackin& mask;
  111.        bit[i]<<=1;
  112.        mask<<=1;
  113.        }
  114.   mask=0x01;
  115.   rackout=0;
  116.   rackin=getc( input_file );
  117.   conclude=rackin;
  118.   if( conclude==EOF ) break;
  119.   rackout=( rackin>>7 );
  120.   for( i=1;i<=6;i++ )
  121.        rackout |= bit[i];
  122.   out_char=array[rackout];
  123.   putc( out_char,output_file );
  124.   rackout=0;
  125.   mask=0x7f;
  126.   rackout=rackin & mask ;
  127.   out_char=array[rackout];
  128.   putc( out_char,output_file );
  129. }
  130.   fclose( output_file );
  131.   fclose( input_file );
  132.   printf("rackin=%dconclude=%d",rackin,conclude);
  133. }