C++ QT-使用QTextStream将数据输入写入csv
我有来自Arduino的数据,我想将其写入CSV文件。问题是数据不断覆盖现有行。下面是代码示例:C++ QT-使用QTextStream将数据输入写入csv,c++,qt,csv,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'
QFile data("F:/logdata.csv");
if (data.open(QFile::WriteOnly | QFile::Truncate)) {
QTextStream out(&data);
out << hum << "," << temp << "," << gas << '\n';
}
QFile数据(“F:/logdata.csv”);
if(data.open(QFile::WriteOnly | QFile::Truncate)){
QTextStream out(数据和数据);
out打开文件时,使用“QIODevice::Append”标志,这样您写入文件的数据将被追加到文件的末尾
例如:
data.open(QFile::WriteOnly | QFile::Truncate |QIODevice::Append)
是否尝试重新打开并将数据附加到同一文件?在这种情况下,您不希望使用QFile::Truncate
标志,因为它将删除该文件中的内容
请参阅:
QIODevice::Truncate如果可能,设备在打开之前会被截断。所有这些都是以前的
设备的内容丢失
正如Ibarros所建议的那样,使用QIODevice::Append
标志确保数据被追加
更新
实际上,您也不想使用QIODevice::WriteOnly
标志,因为它会添加truncate标志。您应该使用QIODevice::ReadWrite
data.open(QIODevice::ReadWrite| QIODevice::Append)
我试着放进这行:if(data.open(QFile::WriteOnly | QFile::Truncate | QFile::Append))但没有任何区别。试一下QIODevice::Append(QFile::WriteOnly | QFile::Truncate | QIODevice::Append)像这样?它仍然覆盖现有的行删除Truncate标志。很高兴我能帮上忙。