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 }