【发布时间】:2022-01-10 17:59:41
【问题描述】:
我正在尝试将一个字节写入 C++ 中的文件。当我保存它时,它是 8 字节大,而不是 1 字节。我怎样才能只保存一个字节?
ofstream binFile("compressed.bin", ios::out | ios::binary);
bitset<8> a("10010010");
binFile << a;
ls -la 的输出:
.rw-r--r-- name staff 8 B Sat Dec 4 23:26:18 2021 compressed.bin
我怎样才能把它缩小到一个字节?
【问题讨论】:
-
我认为发布的重复 Why is std::bitset<8> 4 bytes big? 解释了问题,但没有回答这里提出的问题。投票重新开放。
-
你看文件的内容了吗?查看输出的内容比查看输出的数量更能提供信息。 (当您期望文件中包含非文本数据时,十六进制编辑器可能很有用。或者对于这么小的文件,您可以创建另一个程序,从
compressed.bin读取每个字节,转换为整数,然后流式传输到屏幕上(不要忘记数字之间的空格)。 -
哦.. 如果我提到的“另一个程序”报告所有(或大部分)整数值都在 32-126 范围内,请考虑转换为
char,因为那是可打印字符的范围。