首页 > 解决方案 > 有没有办法将单个 1 和 0 写入 C 中的 .bin 文件?

问题描述

我正在做一个霍夫曼编码项目,我想将单个信息位写入文件。有没有办法在 C 中做到这一点?到目前为止,我查看的所有结果都向我展示了如何将字符“1”和“0”打印到文件中,这不是我想要做的。澄清一下,如果我要将“10100101”写入文件,它应该只占用一个字节。

标签: cfilebinary

解决方案


以下代码将二进制值 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;
}

推荐阅读