我有一个简单的程序,它会向用户询问汽车的年份,品牌和型号,然后将其写入文本文件。
程序在文本文件中运行并写入该行,但是一旦我再次运行它以放入其他内容,它就会删除我的第一行新输入。
我是否需要打开文件"功能之外?
这是我的代码:
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
using namespace std;
class automobile
{
public:
// Constructor
automobile(int year, string make, string model)
{
setcarYear(year);
setcarMake(make);
setcarModel(model);
} // end of constructor
void setcarYear(int year)
{
carYear = year;
}
int getcarYear() {
return carYear;
}
void setcarMake(string make) {
carMake = make;
}
string getcarMake()
{
return carMake;
}
void setcarModel(string model)
{
carModel = model;
}
string getcarModel() {
return carModel;
}
int carYear;
string carMake;
string carModel;
};
int main() {
ofstream myfile("auto.txt");
ifstream myfile1("auto.txt");
if (myfile.is_open()) {
int year;
string make, model;
cout << "Please enter the year of the car" << endl;
cin >> year;
cout << "Please enter the make of the car" << endl;
cin >> make;
cout << "Please enter the model of the car" << endl;
cin >> model;
automobile automobile(year, make, model);
// display user info
myfile << automobile.getcarYear() << " " << automobile.getcarMake() << " " << automobile.getcarModel() << " " << '\n';
}
myfile.close();
}
答案 0 :(得分:4)
你必须使用如下代码。它将附加文件的内容而不是覆盖。
ofstream myfile ("auto.txt", ios::app);
注意:强>
ios::app
所有输出操作都在文件末尾执行,并将内容附加到文件的当前内容。