C++ 读取二进制文件

C++ 读取二进制文件,c++,binaryfiles,C++,Binaryfiles,从二进制文件读取时是否有必要使用reinterpret_cast。因为我发现显式类型转换也可以工作,例如(char*)、sizeof(int)。在您的上下文中,reinterpret_cast和C样式显式转换做的事情完全相同。我更喜欢重新解释cast,因为它在阅读代码时会使不好的地方更加明确。您能更具体地说明您是如何从文件中读取的吗?给我们看一些代码。不知道是否有必要发布代码。但是我可以告诉您流程:我使用参数ios::binary打开文件,然后使用istream&read(char*s,stre

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

在您的上下文中,reinterpret_cast和C样式显式转换做的事情完全相同。我更喜欢重新解释cast,因为它在阅读代码时会使不好的地方更加明确。

您能更具体地说明您是如何从文件中读取的吗?给我们看一些代码。不知道是否有必要发布代码。但是我可以告诉您流程:我使用参数ios::binary打开文件,然后使用istream&read(char*s,streamsize n);将其读入int或double。因此,在某些情况下,您必须使用reinterpret\u cast?我还没有尝试读取包含struct的二进制文件。但是如果我使用c风格的显式cast而不是reinterpret_cast,这会有什么区别吗?老式的cast可能对应于static_cast、reinterpret_cast或const_cast,甚至是它们的组合,所以它比reinterpret_cast稍微强一些,但一般来说它们非常相似