У меня есть байт, объявленный как unsigned int 0b11010101
, как я могу записать это в двоичный файл как 1 байт? Я знаю, что fwrite принимает тип const void *
как буфер, но я не знаю, как записать свой байт, если он представлен как беззнаковое целое число.
Записать байт в файл на C
Ответы (2)
Возможно, вам лучше не писать ни одного байта int
из-за порядка следования байтов. Сначала конвертируйте в unsigned char
.
unsigned int intval = 0b11010101; // assuming compiler likes it
unsigned char charval = intval;
fwrite (&charval, 1, 1, stream);
person
Weather Vane
schedule
25.11.2015
Я использовал fprintf() для записи двоичных файлов. unsigned int val=0b11010101;…………fopen(…);…………fprintf(fp,%c,val); будет работать.
- person Arif Burhan; 24.03.2016
Вы можете записать один байт в файл, используя fputc().
Пример:
unsigned int val = 0b11010101;
fputc(val, stream);
Протестировано с использованием:
~ $ cc -Wall -o test test.c
~ $ ./test | xxd
00000000: d5 .
person
njh
schedule
22.02.2021
0b11010101
недействителен C. Вы случайно не используете gcc? - person fuz   schedule 25.11.2015