gpt4 book ai didi

c++ - 无法写入二进制文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:42:06 25 4
gpt4 key购买 nike

我有以下 C++ 代码。

int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
ofstream output("Sample.txt", ios::out | ios::binary);

for(int i = 0; i < 10; i++)
{
output<<arr[i];
}

现在的 Sample.txt 是这样的:

12345678910

“Sample.txt”不是应该是二进制的吗?当我以二进制模式打开流时,为什么它不将所有内容都转换为二进制。如果我需要数组中每个元素的二进制文件,然后将其打印到文件中,我该怎么办。

最佳答案

Isn't the "Sample.txt" supposed to be in binary?

没有。 std::ios::binary 所做的是防止诸如将 '\n' 从/向特定于平台的 EOL 转换之类的事情。它不会跳过数据字节的内部表示和它们的字符串翻译之间的翻译。毕竟,这就是流的意义所在。 (另外,考虑一下如何流式传输包含二进制表示形式的指针的用户定义类型的对象。)

要实际写入二进制对象,请使用 std::ostream::write()。但是请注意,结果是特定于平台的。

关于c++ - 无法写入二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2429000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com