我希望能够在现有文件的末尾附加文本。这意味着在向其添加新文本时,不应覆盖该文件。
这就是我在纯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 文件。
答案 0 :(得分:0)
在不使用append参数的情况下,意外复制了该函数之前的代码。因此,基本上,文件每次都会删除自身,然后在要添加到现在已擦除文件的位置调用此新函数。