qt qfile.write为什么一样的代码出来的结果不一样

logFile.write(QString("'3' 一共收到%1条删除请求。\n").arg(number).toUtf8());

QString tmp = QString("删除:被删除的第%1条数据对应:linkID = %2。\n").arg(n).arg(linkID);
logFile.write(tmp.toUtf8());

img

该回答引用GPTᴼᴾᴱᴺᴬᴵ
可能是因为 logFile 对象的不同导致的,你可以检查一下 logFile 的打开模式和编码格式是否一致。另外,建议在 logFile 对象使用完毕后及时关闭文件流,以避免影响下一次写入。具体示例如下:

// 打开文件流,指定写入模式和编码格式
QFile logFile("test.log");
if (logFile.open(QIODevice::WriteOnly | QIODevice::Text)) {
    // 写入一行带参数的文本
    int number = 10;
    logFile.write(QString("'3' 一共收到%1条删除请求。\n").arg(number).toUtf8());
    
    // 写入一行带参数的文本
    int n = 1;
    QString linkID = "123";
    QString tmp = QString("删除:被删除的第%1条数据对应:linkID = %2。\n").arg(n).arg(linkID);
    logFile.write(tmp.toUtf8());

    // 关闭文件流
    logFile.close();
} else {
    qDebug() << "Failed to open file.";
}


不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^