Чтение / запись карты с указателями на файл c ++

0

Я пытаюсь прочитать и написать объект 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();
}

btw эти работы при чтении и записи целых чисел

Теги:
templates
file-io

1 ответ

3

Указатели - это только адреса памяти. Данные, на которые вы указываете, никогда не помещаются в файл.

Вы должны использовать то, что знаете о внутренней структуре объектов при их сохранении. Побитовой копии недостаточно.

  • 0
    Итак, как мне записать данные, на которые указывают указатели, в одном файле?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню