c ++一直在文本文件中删除我的行

时间:2016-02-03 21:26:45

标签: c++

我有一个简单的程序,它会向用户询问汽车的年份,品牌和型号,然后将其写入文本文件。

程序在文本文件中运行并写入该行,但是一旦我再次运行它以放入其他内容,它就会删除我的第一行新输入。

我是否需要打开文件"功能之外?

这是我的代码:

#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();
}

1 个答案:

答案 0 :(得分:4)

你必须使用如下代码。它将附加文件的内容而不是覆盖。

ofstream myfile ("auto.txt", ios::app);

注意: ios::app 所有输出操作都在文件末尾执行,并将内容附加到文件的当前内容。