我有一个结构:
struct zipType{
int postalCode;
double longitude;
double latitude;
};
我有一个名为 zipToCout 的函数:
void zipToCout(zipType zip){
cout << "Postal Code = " << zip.postalCode << "\tLongitude = " << zip.longitude << "\t\tLatitude = " << zip.latitude << endl;
}
现在我需要一个函数来将二进制文件读入 zipType 结构。函数原型应该是void binRead(zipType *zip, fstream *input);
. 我可以接近这一点的唯一方法是将原型更改为 this void binRead(zipType &zip, fstream &input)
。有了这个,这是我目前拥有的功能:
void binRead(zipType &zip, fstream &input){
int temp;
double temp2;
zipType tempZip;
tempZip = zip;
//cout << "Reader at location " << input.tellg() << endl;
input.read((char*)&temp,sizeof(int));
tempZip.postalCode=temp;
input.read((char*)&temp2,sizeof(double));
tempZip.longitude=temp2;
input.read((char*)&temp2,sizeof(double));
tempZip.latitude=temp2;
zipToCout(tempZip);
}
这是我在我的 sample.bin 文件上运行它时得到的输出:
Postal Code = 64501 Longitude = 2.61457e-261 Latitude = -7.13357e+288
我需要帮助的是重新格式化函数以使用*
's 而不是&
's 并修复如何正确地将文件读入三个变量。感谢您的关注!此外,此时我只需从文件中读取一个 zipType。