У меня есть-структура:C++ двоичного файла Структура функции
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);
. Единственный способ, которым я могу приблизиться к этому, - изменить прототип на этот 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
Что мне нужна помощь в переформатирование функции для использования *
вместо &
и исправление того, как правильно прочитать файл в трех переменных. Спасибо, что посмотрели! Кроме того, я должен прочитать только один zipType из файла на этом этапе.
Когда вы использовали 'zipType *', вы также использовали '->' вместо '.' для доступа к членам структуры? –