我的C++程序只写入文本文件最后一个条目

My C++ Program Only Writing To The Text File The Last Entry

本文关键字:文件 最后一个 文本 C++ 程序 我的      更新时间:2023-10-16

>这是问题 编写代码以获取至少 5 个朋友的全名。您还必须输入他们最喜欢的宠物的种类 有该宠物的每月预算。将获取的数据保存到名为 (task2-1.txt( 的文件中 (每行一个朋友的逗号分隔值(。

我面临的错误是它只存储最后一个值

这是我的代码

#include<iostream>
#include<iomanip>
#include<fstream>
using namespace std;
int main()
{
int size=0;
string name, pet, budget;
cout << "Enter The Number Of Friends : n";
cin >> size;
for (int i = 0; i < size; i++)
{
ofstream fout;
fout << endl;
cout << "Enter Name Of Friend " << i + 1 << " : ";
cin >> name;
cout << "Enter His Pet : ";
cin >> pet;
cout << "Enter His Budget : ";
cin>>budget;
fout.open("task2-1.txt");
fout << name << ", " << pet << ", " << budget << endl;
cout << endl;
}
return 0;
}

在循环之前打开文件。

ofstream fout;
fout.open("task2-1.txt");
for (int i = 0; i < size; i++)
{
...
}

当您打开文件进行输出时,任何以前的内容都将丢失。这就是为什么在循环中打开文件会丢失您之前编写的任何内容的原因。