【发布时间】:2014-06-25 00:31:28
【问题描述】:
在 C 语言中,一次向文件写入和读取特定位数的最佳方法是什么,例如前 16 位或整数下半部分的 12 位。除了使用 fwrite 之外,我似乎找不到任何线程或文档。我可能不确定,但我认为我不能写入特定数量的位,并且需要一个缓冲区,但任何人都可以指导我以正确的方式执行此操作吗?
【问题讨论】:
-
不,您不能写入任意数量的位。一个完整字节是您可以写入的最小数据量。
-
使用按位运算和移位将位存储在一个字节中。该字节将充当缓冲区。一旦字节中“推送”的位数达到 8[*],您可以将字节输出到文件并重新开始。如果最后一位小于 8[*] [*] 或您机器上的任何限制,您显然必须刷新最后一个字节。