代码之家  ›  专栏  ›  技术社区  ›  cbp

如何用C语言将两字节整数作为十六进制写入二进制文件

c
  •  1
  • cbp  · 技术社区  · 14 年前

    我有一个整数,使用fscanf从文件中检索。 如何将其作为十六进制的两字节整数写入二进制文件?

    4 回复  |  直到 14 年前
        1
  •  3
  •   Mark Wilkins    14 年前

    这将向二进制文件写入一个短整数。结果是2字节的二进制数据(Endianness依赖于系统)。

    int main(int argc, char* argv[])
    {
       short i;
       FILE *fh;
    
       i = 1234;
       fh = fopen( argv[1], "wb" );
       fwrite( &i, sizeof( i ), 1, fh );
       fclose(fh);
    
    }
    
        2
  •  0
  •   Naveen    14 年前
    fprintf(fpout,"%X",input_int);
    
        4
  •  0
  •   Henry H    14 年前

    你的意思是你只需要文件中的两个字节 "\x20\x20" 而不是文本 "0x2020" ? 假设你的变量是短的。 (sizeof(short) == 2)

    第一个: fwrite((const void*)&variable, sizeof(variable), 1, file);

    第二个: fprintf(file, "%#06x", variable);