如何在Qt中连续写入文件?

如何在Qt中连续写入文件?,qt,qt4,Qt,Qt4,我将这段代码作为函数编写,每次调用此函数时,我都想写入文件。但此函数只向文件写入一次。每当我从windows打开文件时,我发现只有一个字写入文件。如何在每次我呼叫时连续写入文件 /* Try and open a file for output */ QString outputFilename = "Results.txt"; QFile outputFile(outputFilename); outputFile.open(QIODevice::WriteOnly);

我将这段代码作为函数编写,每次调用此函数时,我都想写入文件。但此函数只向文件写入一次。每当我从windows打开文件时,我发现只有一个字写入文件。如何在每次我呼叫时连续写入文件

/* Try and open a file for output */
    QString outputFilename = "Results.txt";
    QFile outputFile(outputFilename);
    outputFile.open(QIODevice::WriteOnly);

    /* Check it opened OK */
    if(!outputFile.isOpen()){
    qDebug() <<"- Error, unable to open" << outputFilename << "for output";
    return ;
    }

    /* Point a QTextStream object at the file */
    QTextStream outStream(&outputFile);

    /* Write the line to the file */
    outStream <<"\n"<< szTemp;//"Victory!\n";

    /* Close the file */
    outputFile.close();
/*尝试打开一个文件进行输出*/
QString outputFilename=“Results.txt”;
QFile输出文件(outputFilename);
open(QIODevice::WriteOnly);
/*检查它是否打开好吗*/
如果(!outputFile.isOpen()){

qDebug()当行
outputFile.open(QIODevice::WriteOnly);
打开文件时,它会替换文件中已经存在的所有内容。尝试将该行替换为:

outputFile.open(QIODevice::Append);
以将数据附加到文件中存在的任何内容的模式打开


请注意,为每一行打开文件是一种低效的解决方案,特别是当您有很多行要写时。打开文件一次,然后在关闭之前将所有单词写入文件,会更快。

当该行
输出文件.open(QIODevice::WriteOnly)时;
打开文件,它将替换文件中已有的所有内容。请尝试将行替换为:

outputFile.open(QIODevice::Append);
以将数据附加到文件中存在的任何内容的模式打开


请注意,每行打开一个文件都是一个低效的解决方案,尤其是当您有很多行要写的时候。打开一次文件,然后在关闭之前将所有的字都写到文件中,会更快。

谢谢David,现在我已经写了20次文件,现在我想从文件I的起始位置覆盖它。写了20次之后,我想从1开始重新开始。怎么做?和你最初做的一样,
QIODevice::WriteOnly
为了做到这一点,我添加了下面的代码,但是发生的是在开始时我得到hello,然后用sztemp的长度查找更新,我从开始到sztemp的长度得到空格,然后在文件中写入hello,每个当它重复时,我只收到一条到spaces outputFile.seek(seek);/*的hello帖子,将行写入文件*/outStream=20){outputFile.seek(0);count=0;}seek+=strlen(szTemp);where seeK是静态整数变量谢谢David,现在我已经在文件中写入了20次,现在我想从文件的起始位置覆盖,也就是说,在写入20次后,我想从1开始重新开始。如何执行?与您最初的操作相同,
QIODevice::WriteOnly
要执行此操作,我添加了以下代码,但是发生了什么ns是在开始时,我得到hello,然后搜索长度为sztemp的更新,我从开始到sztemp的长度得到空格,然后在文件中写入hello,每次重复,我只得到一个到spaces outputFile的hello帖子。seek(seek);/*将行写入文件*/outStream=20){outputFile.seek(0);count=0;}seek+=strlen(szTemp);其中seek是静态int变量