C++读写二进制文件

 
代码
#include  " stdafx.h "
#include 
" stdio.h "
#include 
" string.h "
#include 
" stdlib.h "
#define   MAXLEN 1024
void  Fill0( char  t[])
{
    
    
if (strlen(t) < 2 )
    {
        t[
1 ] = t[ 0 ];
        t[
0 ] = ' 0 ' ;
        t[
2 ] = 0 ;
    }
}
int    binaryToString( char   * from, char   * to)   
  {   
          FILE 
* fp;
      FILE 
* out ;
     
      fp
= fopen(from, " rb " );
      
out = fopen(to, " w " );
      
if ( ! fp ||! out ){
            printf(
" error!\n " );
            
return   - 1 ;
      }
      unsigned 
char  c;
      
int  count;

    
char  cc[ 2 ];
    
int  size = 0 ;
      
while ((count = fread( & c,  1 1 , fp))  ==   1 )
      {
        
        
        sprintf(cc,
" %x " ,c); 
        Fill0(cc);
    
        
        fwrite(cc,
1 , 2 , out );

            size
++ ;
        
      }
      printf(
" total:%d " ,size);
          fclose(
out );
          fclose(fp);
          
return     0 ;   
  }   
int  stringToBinary( char   * from, char   * to)
{
        FILE 
* fp;
      FILE 
* out ;

      fp
= fopen(from, " r " );
      
out = fopen(to, " wb " );
      
if ( ! fp ||! out ){
            printf(
" error!\n " );
            
return   - 1 ;
      }
      
      
int  count;

    
char  cc[ 2 ];
    
int  size = 0 ;
    
int  d = 0 ;
      
while ((count = fread(cc,  1 2 , fp))  ==   2 )
      {
    
            sscanf(cc,
" %2x " , & d); 

    
        fwrite(
& d, 1 , 1 , out );
    
            size
++ ;
        
      }
      printf(
" total:%d " ,size);
          fclose(
out );
          fclose(fp);
          
return     0 ;   
}


int  main( int  argc, char *  argv[])
{
    
    
if (argc != 4 )
    {
        printf(
" cmd -tos|tob <srcFile> <destFile>\n " );
        getchar();
        
return   - 1 ;
    }
    
if (strcmp(argv[ 1 ], " tos " ) == 0 )
    {
        binaryToString(argv[
2 ],argv[ 3 ]);
    }
    
else   if (strcmp(argv[ 1 ], " tob " ) == 0 )
    {
        stringToBinary(argv[
2 ],argv[ 3 ]);
    }
    
return   1 ;
}

 

你可能感兴趣的:(C++)