gpt4 book ai didi

windows - 新行未写入文件(Qt)

转载 作者:可可西里 更新时间:2023-11-01 10:01:14 26 4
gpt4 key购买 nike

我使用 qtextedit 在我的软件中记录事件。稍后当我想使用 toPlainText() 将其保存为文本时,生成的文本文件是单行,没有任何换行符。我通过 plainText() 开始记录并使用 append() 添加后续添加。

void rocketscience::saveLog(){
QFile logFile;
QTextStream logOut;
QString logfName;

QSettings prevSet("us","fr");

if (defaultDir.exists(prevSet.value("settings/logPath").toString()))
logfName= QFileDialog::getSaveFileName(this,"Save File",fName,"Text (*.txt");


if (logfName!=NULL){

logFile.setFileName(logfName);
logFile.open(QIODevice::WriteOnly);
logOut.setDevice(&logFile);
logOut<<ui.statusReport->toPlainText();
logFile.close();
}

最佳答案

来自 QTextStream 类引用(那一行有点隐藏):

Note: On Windows, all '\n' characters are written as '\r\n' if QTextStream's device or string is opened using the QIODevice::Text flag.

其中“\n”是 UNIX 行结尾,“\r\n”是 Windows 行结尾 (CR/LF)。

删除方法开头的 QTextStream 初始化并将 if 语句更改为:

if (!logfName.isEmpty())
{
logFile.setFileName(logfName);
logFile.open(QIODevice::WriteOnly);
QTextStream logOut(&logFile, QIODevice::Text);
logOut<<ui.statusReport->toPlainText();
logFile.close();
}

另请注意我是如何更改 if 条件的。 logfName 默认设置为“”,我不确定与 NULL 比较是否有效。你最好使用 QString::isEmpty() 函数

关于windows - 新行未写入文件(Qt),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7104328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com