Binary file to C array(bin2c)

时间:2022-07-01 11:08:19
 1 /********************************************************************************
 2  *                          Binary file to C array(bin2c)
 3  *  说明:
 4  *      由于工作中需要将bmp文件数据转换成C数组,于是写了这个工具(bin2c),代码如你
 5  *      所见,只有看上去不多的几行.
 6  *
 7  *                                2015-4-20 周一 阴 深圳 南山 西丽平山村 曾剑锋
 8  *******************************************************************************/
 9 #include <stdio.h>
10 #include <string.h>
11 
12 int main ( int argc, char** argv )
13 {
14     int i = 0;            
15     char ch = '\0';        
16 
17     if ( 2 != argc ) {
18         printf( "\n    Usage: bin2c <file> \n\n" );
19         return -1;
20     }
21 
22     FILE *binfile = fopen( argv[1], "rb" );
23 
24     // get file name for array's name
25     while ( '.' != argv[1][i++] );
26     argv[1][ i-1 ] = 0;
27 
28     //get file data and change to const unsigned char array's data
29     i = 1;
30     printf( "const unsigned char %s[] = { \n\t", argv[1] );
31     while ( EOF != (ch = fgetc( binfile )) ) 
32          printf( "0x%02X%s\t", (unsigned char)ch , ( i++ % 8 ) == 0 ? "\n" : "" );
33     printf( "\n};\n" );
34 
35     fclose( binfile );
36 }