从 std::cin 读取二进制数据

新手上路,请多包涵

std::cin 读取二进制(非格式化)数据到 stringstringstream 的最简单方法是什么?

原文由 Allan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 686
2 个回答

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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏