2

我正在尝试编写一个程序,该程序将创建一个文本文件并写入我从串行端口读取的字符流。我只是想了解如何让代码连续写入数据而不覆盖以前写入的数据,因为我需要它来保持发送的每个字符。我编写此代码作为测试,但我无法让它连续编写文本。它写一次然后停止。

#include <QFile>
#include <QTextStream>
int main() {
int test = 0;
while(test < 2){
QString filename = "Data.txt";
QFile file(filename);
if (file.open(QIODevice::ReadWrite)) {
    QTextStream stream(&file);
    stream << "one thing to test" << endl;
    test++;
  }
 }
}

有人有什么建议吗?

-谢谢

4

1 回答 1

2

默认情况下,打开时QIODevice::ReadWrite会在写入时截断文件。根据文档QIODevice::Append将在文件末尾打开文件进行写入。

如果你真的想读写,你可以QIODevice::seek()写入之前到文件末尾。

于 2012-07-19T18:48:41.183 回答