Чтение / запись файлов в / из структуры / класса
Я хотел бы прочитать файл в структуру или класс, но после некоторого чтения ямы поняли, что не очень хорошая идея сделать что-то вроде:
int MyClass::loadFile( const char *filePath ) {
ifstream file ( filePath, ios::in | ios::binary );
file.read ((char*)this, 18);
file.close();
return 0;
}
Я думаю, если я хочу написать файл из структуры / класса, это не такт кошерный либо:
void MyClass::writeFile( string fileName ) {
ofstream file( fileName, ofstream::binary );
file.write((char*)this, 18);
file.close();
}
Это звучит как причина, по которой я неЯ не хочу этого делать, потому что, даже если члены данных моей структуры добавляют до 18 байтов, некоторые из них могут быть заполнены дополнительными байтами в памяти. Есть ли более правильный / элегантный способ получить файл в класс / структуру, как это?