我有以下 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”不应该是二进制的吗?当我以二进制模式打开流时,为什么它不将所有内容转换为二进制。如果我需要数组中每个元素的二进制,然后将其打印到文件中,我该怎么办?
“Sample.txt”不应该是二进制的吗?
不,什么std::ios::binary
所做的就是防止诸如翻译之类的事情'\n'
从/到特定于平台的 EOL。它不会跳过数据字节的内部表示及其字符串转换之间的转换。毕竟,这就是流的全部意义所在。 (另外,请考虑如何流式传输包含二进制表示形式的指针的用户定义类型的对象。)
实际编写对象二进制使用std::ostream::write()
。但请注意,结果是特定于平台的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)