从二进制文件中获取C中变量的十六进制值

时间:2014-07-04 10:32:21

标签: c

printf("Enter the name of file you wish to see\n");
gets(file_name);
fp = fopen(file_name,"rb");
while( ( ch = fgetc(fp) ) != EOF  && loop)
{
    printf("value of ch is %x\n",ch);
    loop--;               
}

我有一个二进制文件,我用“rb”权限读取它,并以十六进制打印它的值,但如果我在数组中将此值用于其他目的,那么当我打印数组值时它显示不同的值与我在上面的代码中打印不一样。

请帮助我如何将二进制文件的数据(十六进制)存储在数组中。

2 个答案:

答案 0 :(得分:2)

数据本身不是“十六进制”,它只是文件中的一个字符(通常是字节)。

您可以选择以十六进制或任何其他格式打印。无论你是否拥有数组中的值,都可以这样做。

答案 1 :(得分:0)

应该写成

const int t_huffman_env_1_5dB[][2] =
{
    {0x00000012, 0x0003FFD6},
    {0x00000012, 0x0003FFD7},
    {0x00000012, 0x0003FFD8},
    {0x00000012, 0x0003FFD9},
    {0x00000012, 0x0003FFDA},
    {0x00000012, 0x0003FFDB},
    {0x00000013, 0x0007FFB8},
    {0x00000013, 0x0007FFB9},
    {0x00000013, 0x0007FFBA},
    {0x00000013, 0x0007FFBB},
    {0x00000013, 0x0007FFBC},
    {0x00000013, 0x0007FFBD},
    {0x00000013, 0x0007FFBE},
    {0x00000013, 0x0007FFBF},
    {0x00000013, 0x0007FFC0},
    {0x00000013, 0x0007FFC1},
    {0x00000013, 0x0007FFC2},
    {0x00000013, 0x0007FFC3},
    {0x00000013, 0x0007FFC4},
    {0x00000013, 0x0007FFC5}
};