【问题标题】:reading a binary file读取二进制文件
【发布时间】:2010-10-02 08:53:09
【问题描述】:

从二进制文件读取时是否需要使用 reinterpret_cast。因为我发现显式类型转换也可以,例如(char*), sizeof(int).

【问题讨论】:

  • 您能否更具体地了解您是如何从文件中读取数据的?给我们看一些代码。
  • 不知道是否需要发布代码。但我可以告诉你流程:我用参数 ios::binary 打开文件,然后我使用 istream& 读取 (char* s,streamsize n);将其读入 int 或 double。

标签: c++ binaryfiles


【解决方案1】:

reinterpret_cast 和 C 风格的显式强制转换在您的上下文中执行完全相同的操作。我更喜欢 reinterpret_cast ,因为它在阅读代码时更清楚地表达了肮脏。

【讨论】:

  • 所以在某些情况下您必须使用 reinterpret_cast?我还没有尝试读取包含结构的二进制文件。但是,如果我使用 c 风格的显式转换而不是 reinterpret_cast,那会有什么不同吗?
  • 旧式转换可能对应于 static_cast、reinterpret_cast 或 const_cast,甚至是它们的组合 - 所以它比 reinterpret_cast 稍微强一些,但总的来说它们非常相似
猜你喜欢
  • 1970-01-01
  • 2017-10-01
  • 2011-09-03
  • 2016-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多