c - 有没有办法将单个 1 和 0 写入 C 中的 .bin 文件?
问题描述
我正在做一个霍夫曼编码项目,我想将单个信息位写入文件。有没有办法在 C 中做到这一点?到目前为止,我查看的所有结果都向我展示了如何将字符“1”和“0”打印到文件中,这不是我想要做的。澄清一下,如果我要将“10100101”写入文件,它应该只占用一个字节。
解决方案
以下代码将二进制值 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;
}
推荐阅读
- ios - 为什么显示 Google 插页式广告会改变我的 NavigationBar 的高度?Xcode 11.3,iOS 13
- python - Python,tkinter入口函数的问题
- android - 根据设备锁对用户进行身份验证
- elasticsearch - 如何范围查询映射的日期
- reactjs - 如何在 HighchartsReact 中添加全屏按钮?
- aem - /bin/aem/test.MY_SELECTOR.json 给出禁止访问消息
- javascript - 锚文本 url 未在 th:text thymleaf 中显示为链接
- flutter - 在飞镖中将图像转换为文件
- python - 如何捕获麦克风流并使用 ffmpeg 进行更改?
- visual-studio-code - 在vs代码中保存或上传文件副本