📄 txt2carray.c
字号:
// BIN2C - Dump binary files in C hex
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#ifdef _WIN32
#pragma warning( disable : 4706 ) // Disable "assignment within conditional expression" warning.
#endif
#define ISIZE 16384
#define OSIZE 2048
FILE *pOutFD = NULL;
#define DUMPS(s) if (pOutFD) fputs(s,pOutFD); else puts(s);
#define DUMPF(m,p) if (pOutFD) fprintf(pOutFD,m,p); else printf(m,p);
int main(int argc, char *argv[])
{
int Len, i;
char *pInBuf;
char *pOutBuf;
FILE *pInFD;
if ( argc<2 || argc>3 )
{
puts("BIN2C - Dump binary files in C hex table format.");
puts("Usage: BIN2C file1 [file2]");
return (1);
}
if ( ((pInBuf = malloc(ISIZE)) == NULL) || ((pOutBuf = malloc(OSIZE)) == NULL) )
{
puts("Insufficient memory for I/O buffers.");
return (1);
}
if ( !(pInFD = fopen(argv[1],"rb")) )
{
printf("\aError opening file %s!\n", argv[1]);
return (1);
}
if ( argc>2 && !(pOutFD = fopen(argv[2],"wb")) )
setvbuf(stdout, pOutBuf, _IOFBF, OSIZE);
DUMPS( "\"" );
while ( (Len = fread(pInBuf, 1, ISIZE, pInFD)) )
{
for ( i=0; i<Len; i++ )
{
switch ( pInBuf[i] )
{
default: DUMPF( "%c", pInBuf[i] ); break;
case '\"': DUMPS( "\\\"" ); break;
case '\\': DUMPS( "\\\\" ); break;
case '\r': DUMPS( "\",\r" ); break;
case '\n': DUMPS( "\n\"" ); break;
}
}
}
DUMPS( "\"" );
if ( pInFD )
fclose( pInFD );
if ( pOutFD )
fclose( pOutFD );
return (0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -