据我所知,通过使用 wb 模式在 C 中保存文件,我不应该在保存的文件中看到二进制数字(零和一)。
当我以 wb 模式保存时,文件中的输出是:
Feras Wilson — n FFFF îè` c P xHF F û¥2012
但这不是二进制零和一。我如何保存文件以包含零和一,然后能够在 C 中读取它?
最佳答案
它保存为 0 和 1,但您的文本编辑器将它们读取为字节(将它们分组为 8 位)并使用 ASCII 显示它们。 [1]
当您写入文本文件时,需要做很多工作来解释您希望写入的二进制数据,以便将其置于人类可读的格式中。
例如,如果您编写数字 255
,它必须将其转换为 '2'
、'5'
的形式, '5'
(这是字符!)然后写下这些每个字符。
如果它写入二进制文件,它只会将实际的二进制数据放入文件中。这取决于它是什么类型的变量(它代表它的八位字节数)以及字节顺序和其他因素。如果它是一个无符号字符,它将放入二进制文件 0b11111111
(这是实际的原始数字,而不是字符!)。
关于c - 在 C 中另存为二进制文件,但不显示零和一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12473272/