簡體   English   中英

QT-使用QTextStream將輸入的數據寫入csv

[英]QT - Writing data input to csv with QTextStream

我有來自Arduino的數據,我想將其寫入CSV文件。 問題在於數據不斷覆蓋現有行。 這是代碼示例:

QFile data("F:/logdata.csv");


if (data.open(QFile::WriteOnly | QFile::Truncate)) {
 QTextStream out(&data);



 out << hum << "," << temp << "," << gas << '\n';


 }

您是否要重新打開數據並將數據附加到同一文件? 在那種情況下,您不想使用QFile::Truncate標志,因為它會刪除該文件中的內容。

請參閱http://doc.qt.io/qt-5/qiodevice.html

QIODevice :: Truncate如果可能,設備在打開之前會被截斷。 設備的所有早期內容均丟失。

另外,如Ibarros所建議,請使用QIODevice::Append標志以確保附加了數據。

更新資料

實際上,您也不想使用QIODevice::WriteOnly標志,因為它將添加truncate標志。 您應該改用QIODevice::ReadWrite

data.open(QIODevice::ReadWrite| QIODevice::Append)

打開文件時,使用“ QIODevice :: Append”標志,因此您寫入文件的數據將附加在文件末尾。

例:

data.open(QFile::WriteOnly | QFile::Truncate |QIODevice::Append)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM