【问题标题】:Is there any way to write individual 1's and 0's to a .bin file in C?有没有办法将单个 1 和 0 写入 C 中的 .bin 文件?
【发布时间】:2020-02-07 09:44:34
【问题描述】:

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

【问题讨论】:

  • 将位打包成字节并以二进制模式写入文件。
  • '10100101' 是由'1''0' 组成的字符串,用于在一个字节中直观地显示各个位。为了将其写入一个字节,您需要将其转换为实际数字,而不是字符串,并以二进制(而非文本)模式写入。这应该为您提供足够的信息来进行一些搜索并努力自己解决问题。

标签: c file binary


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-09
    • 1970-01-01
    • 2017-07-16
    • 1970-01-01
    • 2017-05-15
    • 1970-01-01
    • 2019-09-28
    • 1970-01-01
    相关资源
    最近更新 更多