-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'。 –