Как записать двухбайтовое целое как шестнадцатеричное в двоичный файл, используя C - PullRequest
1 голос
/ 23 ноября 2010

У меня есть целое число, полученное из файла с помощью fscanf. Как мне записать это в двоичный файл в виде двухбайтового целого числа в шестнадцатеричном виде?

Ответы [ 4 ]

3 голосов
/ 23 ноября 2010

Это запишет короткое целое число в двоичный файл. Результат - 2 байта двоичных данных (порядковый номер зависит от системы).

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);

}
0 голосов
/ 23 ноября 2010
0 голосов
/ 23 ноября 2010

Вы имеете в виду, что вам нужно всего два байта в файле, например "\x20\x20", а не текст, как в "0x2020"? Предполагая, что ваша переменная короткая. (sizeof(short) == 2)

Первый: fwrite((const void*)&variable, sizeof(variable), 1, file);

Второй: fprintf(file, "%#06x", variable);

0 голосов
/ 23 ноября 2010
fprintf(fpout,"%X",input_int);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...