【发布时间】:2021-05-17 02:10:55
【问题描述】:
我目前正在从事一个项目,以从文件中读取二进制数据并对其进行处理并再次将其写回。到目前为止,读取效果很好,但是当我尝试将存储在字符串中的二进制数据写入文件时,它会将二进制文件作为文本写入。我认为这与开放模式有关。 这是我的代码:
void WriteBinary(const string& path, const string& binary)
{
ofstream file;
file.open(path);
std::string copy = binary;
while (copy.size() >= 8)
{
//Write byte to file
file.write(binary.substr(0, 8).c_str(), 8);
copy.replace(0, 8, "");
}
file.close();
}
在上面的函数中,binary 参数如下所示:0100100001100101011011000110110001101111
【问题讨论】:
-
所以大概这正是
binary对象中的内容:0和1文本字符的序列。 -
是的,但是假设我有问题中提到的二进制字符串并将其写入具有问题中显示的函数的文件,该文件将不包含
Hello,这就是字符串在 ascii 中的意思。这只是数字。 -
如果要将
Hello写入文件,则需要将该二进制字符串转换为字节H、e、l、l、@987654334 @. -
我刚刚尝试了您的解决方案,它确实有效。因此,我使用了this 帖子中描述的 yasen 功能。谢谢
标签: c++ file binary binaryfiles