Есть ли способ записать отдельные 1 и 0 в файл .bin в C? - PullRequest
0 голосов
/ 10 октября 2019

Я работаю над проектом кодирования Хаффмана и хочу записать отдельные биты информации в файл. Есть ли способ сделать это в C? Все результаты, которые я до сих пор просматривал, только что показали мне, как печатать символы «1» и «0» в файл, что я не хочу делать. Чтобы уточнить, если бы я должен был написать «10100101» в файл, он должен занимать только один байт.

1 Ответ

1 голос
/ 10 октября 2019

Следующий код запишет в файл байт с двоичным значением 10100101 (в шестнадцатеричном формате A5). Он будет записан в двоичном режиме, т.е. не в виде текстовой строки.

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

int main()
{
    FILE *fp;
    unsigned char to_write;
    size_t ret_val;

    fp = fopen( "testfile.bin", "wb" );
    assert( fp != NULL );

    to_write = 0xA5;

    ret_val = fwrite( &to_write, sizeof(to_write), 1, fp );
    assert( ret_val == 1 );

    fclose( fp );

    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...