簡體   English   中英

使用文件的指針讀取/編寫地圖C ++

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM