-1
我有一个包含一个文本文件的十六进制代码文本文件以十六进制
00000000 4f909390
00000002 5e456783
00000003 3fe52341
我需要与my_file.txt上述的十六进制值的嵌入式设备进行编程。 但是,当我读取上述文件并打印它们时,我发现文本中的上述十六进制值完全不同,我知道txt数据已转换为十六进制格式。
void print_file()
{
char source[1000000];
FILE *fp = fopen("my_file.txt, "r");
UINT32 size = ftell(fp); /* get the size */
if(fp != NULL)
{
while((symbol = getc(fp)) != EOF)
{
strcat(source, &symbol);
}
fclose(fp);
}
for (UINT32 i = 0; i < size; i++)
printf("%02x", buffer[i]);
}
上面的代码显示的十六进制转换的文本格式,并显示我
3030303030303030203466393039333930a303030303030303
2203565343536373833a3030303030303033203366653532333431.
这是完整与文本进制转换,我检查了网上。
所需的打印输出应该是
00000000 4f909390
00000002 5e456783
00000003 3fe52341
什么是ASCII转化提前诅咒?谢谢本身,而不是阅读文字的十六进制值的权利。
如果不存在'\ 0','strcat'将会出现问题 –
每行的两个数字都是十六进制的,第一个数字是什么意思? – zwol
尝试'人strtol'。 –