QT - 使用QTextStream将数据输入写入csv

时间:2016-05-03 09:21:14

标签: c++ qt csv

我有来自Arduino的数据,我想写入CSV文件。问题是数据不断覆盖现有的行。以下是代码示例:

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


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



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


 }

2 个答案:

答案 0 :(得分:4)

您是否尝试重新打开并将数据附加到同一文件?在这种情况下,您不想使用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)

答案 1 :(得分:1)

打开文件时,请使用&#34; QIODevice :: Append&#34;标志,因此您写入的数据将附加在文件的末尾。

示例:

{{1}}