【问题标题】:Writing long stream of characters to text file QT C++将长字符流写入文本文件QT C++
【发布时间】:2012-07-19 18:43:22
【问题描述】:

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

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

大家有什么建议吗?

-谢谢

【问题讨论】:

    标签: c++ qt text serial-port


    【解决方案1】:

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

    如果你真的想同时读写,你可以QIODevice::seek()到文件末尾再写。

    【讨论】:

    • 完美。我不敢相信我忽略了这么一件小事。通过将 ReadWrite 更改为 Append,它会打开文件并添加文本而不是覆盖一次。谢谢!
    • 既然解决了你的问题,你能接受答案吗?详情请见here
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-16
    • 1970-01-01
    • 2020-08-04
    相关资源
    最近更新 更多