[英]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.