1.按提示输入对应目标位置及准确文件名
2.如果没有同名的bin,会创建生成bin文件,当存在同名bin时,会写入该bin文件
3.数据需提前取出,设置好两位的格式 0xXX,其中XX均需要,例如0x05 数据需写入05
示例代码
#include
#include
#include
#define MAX_PATH_LENGTH 256
int main(void)
{
FILE* txt;
FILE* bin;
int out, in;
int data[2];
uint32_t i = 0;
uint32_t cnt = 0;
char filename[MAX_PATH_LENGTH];
printf("/*****Giantec_txt_to_bin_tool*****/\n");
printf("Enter the TXT file name: "); //输入的filename 必须是存在的,并且要指明路径
//scanf("%s",&filename);
scanf("%[^\n]%*c",&filename);
txt = fopen(filename, "r");
if (!txt)
{
printf("%s cannot be open!\n",filename);
return -1;
}
else
{
printf("%s open success !\n",filename);
printf("数组长度:%d \n",strlen(filename));
printf("%d %c %c\n",filename[strlen(filename)-3],filename[strlen(filename)-2],filename[strlen(filename)-1]);
filename[strlen(filename)-3]=0x62;//b
filename[strlen(filename)-2]=0x69;//i
filename[strlen(filename)-1]=0x6E;//n
}
// printf("Enter the BIN file name: "); //输入的filename 必须是存在的,并且要指明路径
//scanf("%s",&filename);
// scanf("%[^\n]%*c",&filename);
bin = fopen(filename, "wb");
if (!bin)
{
printf("could not create the binary file: %s\n",filename);
return -1;
}
else if(bin==NULL)
{
bin=fopen(filename, "w");
}
while (1)
{
out = fgetc(txt);
if (out == EOF)
{
if (i == 1)
{
fputc(data[0], bin);
cnt++;
}
break;
}
else if (out == ' ' || out == '\n' || out == '\r')
{
continue;
}
else if (out >= '0' && out <= '9')
{
out = out - '0';
}
else if (out >= 'a' && out <= 'f')
{
out = out - 'a' + 10;
}
else if (out >= 'A' && out <= 'F')
{
out = out - 'A' + 10;
}
else
{
printf("the txt file contains non-binary character!\n");
fclose(bin);
fclose(txt);
return -1;
}
data[i] = out;
i++;
if (i == 2)
{
i = 0;
in = (data[0] << 4) + data[1];
fputc(in, bin);
cnt++;
}
}
fclose(bin);
fclose(txt);
printf("convert success!\n");
printf("totally %d bytes!\n", cnt);
return 0;
}