如何在Qt中将文本追加到文本文件?

时间:2018-08-12 23:25:47

标签: c++ qt qfile

我希望能够在现有文件的末尾附加文本。这意味着在向其添加新文本时,不应覆盖该文件。

这就是我在纯C ++中的处理方式:

ofstream fout("filename.txt", ios::app)  

这是我尝试使用Qt执行此操作的方法,但它不起作用:

void addToDatabase::on_pushButton_clicked() {
    QString make = ui->lineEdit->text();
    QString model = ui->lineEdit_2->text();
    QString price = ui->lineEdit_3->text();
    QString miles = ui->lineEdit_4->text();

    QFile myDatabase(myDatabasePath);
    if (myDatabase.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) {
        QTextStream out(&myDatabase);
        out << make << "    " << model << "    " << price << "    " << miles << endl;
        myDatabase.flush();
        myDatabase.close();
    }
    this->close();
}

我注意到,当我尝试读取我的 QFile 时,它也不起作用。我认为这是因为第7行上的 myDatabase 声明正在覆盖给定路径上的旧 database.txt 文件。

1 个答案:

答案 0 :(得分:0)

在不使用append参数的情况下,意外复制了该函数之前的代码。因此,基本上,文件每次都会删除自身,然后在要添加到现在已擦除文件的位置调用此新函数。​​