[英]Reading/Writing a map with pointers to a file c++
我正在嘗試將std :: map對象讀寫到文件中。 地圖類型是
map<string, Node*>
而且我已經成功地將其寫入文件,但未成功讀回。 我不確定我是否正確存儲它,我認為這是因為我在地圖(Node *)中有指針,但是我不確定。 我怎么能完整地寫出包含所有對象的整個地圖,然后完美地讀回來。 我目前的讀寫方法是
讀
template<typename T>
T ReadObject(string path) {
T num;
ifstream infile;
infile.open(path, ios::in|ios::binary);
infile.read(reinterpret_cast<char *>(&num),sizeof(T));
infile.close();
return num;
}
寫
template<typename T>
void WriteObject(string path, T& num) {
ofstream outfile;
outfile.open (path, ios::out|ios::binary);
outfile.write(reinterpret_cast<char *>(&num),sizeof(T));
outfile.close();
}
順便說一下,這些工作在讀寫整數時有效
指針只是內存地址。 您指向的數據永遠不會放入文件中。
保存對象時,需要使用對對象內部結構的了解。 按位復制是不夠的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.