Запись в вектор объектов класса из файла [закрыт]

79
10 января 2021, 17:00
Закрыт. Этот вопрос не по теме. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском.

Закрыт 1 год назад.

Улучшить вопрос

После считывания в векторе получаются одни и те же значения. Не понимаю в чем причина. Если выводить tempVar1 в цикле то в нем правильные значения, но в итоге в векторе одни и те же.

class Edge{
 //
}
void ReadFromFile(vector<Vertex*>& vertexs, vector<Edge*>& edges) {
        char buff[20];
        vector<string> buffer;
        bool flag = 0;
        fstream fin;
        fin.open("test.tgf", ios::in);
        while (!fin.eof()) {
            fin.getline(buff, 20);
            if (buff[0] == '#') {
                flag = 1;
                continue;
            }
            if (flag == 0) {
                buffer = Split(buff, " ");
                //Vertex tempVar(atoi(buffer[0].c_str()), buffer[1].c_str());
                //vertexs.push_back(&tempVar);
            }
            if (flag == 1) {
                buffer = Split(buff, " ");
                Edge tempVar1(atoi(buffer[0].c_str()), atoi(buffer[1].c_str()), atoi(buffer[2].c_str()));
                edges.push_back(&tempVar1);
            }
        }
        fin.close();

В векторе получаются такие значения:

6 4 1
6 4 1
6 4 1
6 4 1
6 4 1
6 4 1
6 4 1
6 4 1
6 4 1
6 4 1
6 4 1

Вместо:

1 2 1
1 5 1
2 5 1
5 4 1
2 3 1
3 4 1
4 6 1
2 1 1
5 1 1
5 2 1
4 5 1
3 2 1
4 3 1
6 4 1
Answer 1
  ...
  Edge* tempVar1 = new Edge(atoi(buffer[0].c_str()), atoi(buffer[1].c_str()), atoi(buffer[2].c_str()));
  edges.push_back(tempVar1);
}
READ ALSO
Как при открытии файла получить ссылку на него?

Как при открытии файла получить ссылку на него?

У меня в проекте на C++ есть возможность сохранять изменённые данные в файл, но есть проблема, когда я открываю не саму программу, а ее файл,...

105
Как включить Z-буфер (OpenGL 3.3)?

Как включить Z-буфер (OpenGL 3.3)?

Где предположительно может быть ошибка? После создания окна (sf::RenderWindow) и контекста, перед главным циклом отрисовки прописал

68
Активация элемента в дереве

Активация элемента в дереве

В QAbstractItemView есть сигнал activated который генерируется если произошло нажатие на элементНа этот сигнал у меня подвешен слот onItemActivated:

95