2012-07-19 50 views
2

我想寫一個程序,將創建一個文本文件,並寫我從串口讀取的字符流。我只是想了解如何讓代碼連續寫入數據並且不覆蓋先前寫入的數據,因爲我需要它來保持每個字符的發送。我把這段代碼寫成了一個測試,但我無法讓它繼續寫下文本。它只寫一次然後停止。寫長文字文件流到文本文件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++; 
    } 
} 
} 

任何人有任何建議嗎?

-Thanks

回答

2

默認情況下,開放與QIODevice::ReadWrite將截斷上寫入文件。根據the documentationQIODevice::Append將在文件末尾打開文件進行寫入。

如果你真的想讀寫,你可以在QIODevice::seek()到文件的末尾寫入。

+0

完美。我不敢相信我忽視了這樣一件小事。通過將ReadWrite更改爲Append,打開文件並添加文本,而不是覆蓋一次。謝謝! – Julien 2012-07-19 18:54:21

+0

既然解決了你的問題,你能接受答案嗎?詳情請參閱[這裏](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。 – smocking 2012-07-19 19:00:04