【发布时间】:2023-03-06 18:56:01
【问题描述】:
我有一个包含很多变量(名称、类型、长度等)的对象向量,我正在尝试将这些变量写入文件。
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) 如果我注册了一个小船对象,关闭应用程序并进入文本文件,我可以看到该对象被写入了两次。
2) 如果我注册 2 个对象并进入文本文件,则只有最后一个(第二个)对象已写入文件,并且显示 3 次。
现在我的问题是:
是什么导致了双输出?
为什么只有最后一个对象写入文件?我以为循环会解决这个问题,但它没有
【问题讨论】:
标签: c++ object vector ofstream writetofile