我的問題是這樣的:我有一個名爲'Register'的類。它有一個名爲「trainName」的字符串屬性,它的制定者:字符串到二進制文件
class Register {
private:
string trainName;
public:
string getTrainName();
};
由於事實上,它是長,但我想使這個簡單。
在其他類中,我將幾個Register對象複製到一個二進制文件中,之前設置了trainName。
Register auxRegister = Register();
auxRegister.setName("name");
for(int i = 0; i < 10; i++) {
file.write(reinterpret_cast<char*>(&auxRegister),sizeof(Register));
}
後來,我嘗試從二進制文件中檢索寄存器:
Register auxRegister = Register();
while(!file.eof()) { //I kwnow this is not right. Which is the right way?
file.read(reinterpret_cast<char*>(&auxRegister), sizeof(Register));
}
它發生這是行不通的。事實上,寄存器確實有更多的屬性(它們是int),並且我可以檢索它們,但字符串並不是這種情況。
我做錯了什麼?在處理二進制文件和字符串時,我應該考慮一些事情嗎?
非常感謝。