std::cin 没有用 ios_binary 打开。如果必须使用 cin,则需要重新打开它,这不是标准的一部分。 这里有一些想法: https ://comp.unix.programmer.narkive.com/jeVj1j3I/how-can-i-reopen-std-cin-and-std-cout-in-binary-mode 一旦它是二进制的,您就可以使用 cin.read() 来读取字节。如果您知道在您的系统中,文本和二进制之间没有区别(并且您不需要可移植),那么您可以直接使用 read 而不必担心。 原文由 Lou Franco 发布,翻译遵循 CC BY-SA 4.0 许可协议
cin.read 将存储固定数量的字节,无需任何逻辑搜索@Jason 提到的类型的分隔符。 但是,流上可能仍然存在活动转换,例如 CRLF -> NL,因此它仍然不适合二进制数据。 原文由 Ben Voigt 发布,翻译遵循 CC BY-SA 3.0 许可协议
std::cin
没有用 ios_binary 打开。如果必须使用 cin,则需要重新打开它,这不是标准的一部分。这里有一些想法: https ://comp.unix.programmer.narkive.com/jeVj1j3I/how-can-i-reopen-std-cin-and-std-cout-in-binary-mode
一旦它是二进制的,您就可以使用
cin.read()
来读取字节。如果您知道在您的系统中,文本和二进制之间没有区别(并且您不需要可移植),那么您可以直接使用 read 而不必担心。