У меня есть вектор объектов с довольно большим количеством переменных (имя, тип, длина и т. Д. c), которые я пытаюсь записать в файл.
vector <Boat> berths;
void Boat::write_boats()
{
ofstream file("records_file.txt");
for (Boat b : berths)
{
file << owner_name << "; " << boat_name << "; " << type << "; " << length << "; " << draft << '\n';
}
file.close();
}
void save_records()
{
for (unsigned int i = 1; i < berths.size(); i++)
{
berths[i].write_boats();
}
}
Я вызываю функцию save_records () с опцией меню, завершающей приложение.
Результат, который я получаю:
1) Если я зарегистрирую объект лодки, закрою приложение и go в текстовом файле, я могу см. объект, записанный дважды.
2) Если я регистрирую 2 объекта и I go в текстовом файле, в файл был записан только последний (второй) объект, и он отображается 3 раза.
Теперь мои вопросы:
Что вызывает двойной вывод?
Почему в файл записывается только последний объект? Я думал, что l oop исправит это, но не