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

デフォルトでは、withを開くとQIODevice::ReadWrite、書き込み時にファイルが切り捨てられます。ドキュメントによるとQIODevice::Append、ファイルの最後に書き込むためにファイルを開きます。

本当に読み取りと書き込みの両方QIODevice::seek()が必要な場合は、書き込む前にファイルの最後まで行うことができます。

于 2012-07-19T18:48:41.183 に答える