struct DATAs
{
char data1;
short data2;
short data3;
float data4;
int data5;
short data6;
unsigned short data7;
short data8;
char data9;
};
void fixFile(char* filename)
{
std::ifstream InputFile;
InputFile.open(filename, std::ios::binary);
DATAs FileDatas;
InputFile.read(reinterpret_cast<char*>(&FileDatas), sizeof(FileDatas));
}
为什么我需要使用“reinterpret_cast”来代替阅读
"InputFile.read(&FileDatas, sizeof(FileDatas))"?
最佳答案
std::ifstream::read()
的第一个参数的类型是 char*
。在 C++ 中,DATAs*
类型的指针不会自动转换为 char*
。因此,您需要使用 reinterpret_cast
。
关于c++ - 使用 reinterpret_cast 将文件读入结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49565933/