我想將文件讀入結構體或類中,但是在閱讀完一些文字後我發現它不是一個好主意:從結構體/類讀取/寫入文件
int MyClass::loadFile(const char *filePath) {
ifstream file (filePath, ios::in | ios::binary);
file.read ((char*)this, 18);
file.close();
return 0;
}
我猜如果我想從一個struct /類寫入一個文件,這不是猶太之一:
void MyClass::writeFile(string fileName) {
ofstream file(fileName, ofstream::binary);
file.write((char*)this, 18);
file.close();
}
這聽起來像我不希望這樣做的原因是因爲,即使如果我的結構的數據成員最多可以添加18個字節,其中一些可能會在內存中填充額外的字節。有沒有更正確/優雅的方式來獲取文件到這樣的類/結構?
唯一真正的解決辦法是寫各個字段逐個。思維排序,甚至更好的是,在寫入之前,將每個字段轉換爲人類可讀的表示(例如,數字42會生成字符串「42」),以便可以在標準文本編輯器中手動編輯您的文件。 – syam