将长字符流写入文本文件QT C++



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

#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++;
  }
 }
}

有人有什么建议吗?

-感谢

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

如果您真的想同时读写,可以在写之前将QIODevice::seek()拖到文件的末尾。

最新更新