ファイルを構造体またはクラスに読み込みたいのですが、いくつか読んだ後、次のようなことをするのは良い考えではないことがわかりました。
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 バイトまで追加されたとしても、それらの一部がメモリ内の余分なバイトでパディングされる可能性があるためです。このようなクラス/構造体にファイルを取得するためのより正確でエレガントな方法はありますか?