0

如何在不丢失先前值的情况下编写新文本

    QString mFilename2 = "bin/bin_2.txt";
File_main_Editor.stWrite(mFilename2,okline_Edit);

void stWrite(QString Filename,QString stringtext){
QFile mFile(Filename);

if(!mFile.open(QIODevice::WriteOnly | QIODevice::Text))
{
    QMessageBox message_file_Write;
    message_file_Write.warning(0,"Open Error"
           ,"could not to open file for Writing");
    return;
}
QTextStream out(&mFile);
out << stringtext;
out.setCodec("UTF-8");

mFile.flush();
mFile.close();
}

每次初始化 okline_Edit 时,stWrite 函数都会在文件中调用一个新值,然后将 .txt 文件中的前一个值丢失。

或者换句话说

在此处输入图像描述

4

2 回答 2

0

您打开文件QIODevice::WriteOnly将开始写入...从一开始,您需要打开它QIODevice::Append

于 2016-11-06T20:40:55.410 回答
0

您需要设置文件QIODevice::Appendopen()

mFile.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Text)

此外,如果您希望每个追加都在新行上,您还必须插入 a \n

于 2016-11-06T20:40:57.733 回答