質問

Hey I'm trying to mess around with Qt and for some reason the following code will create the desired text file, but never writes anything to it. Am I doing something wrong? I believe I've copied the example in the documentation pretty accurately.

qDebug() << output

works as expected, but even though the file is created, nothing is ever written to it.

#include <QCoreApplication>
#include <QtDebug>
#include <QString>
#include <QDateTime>
#include <QTextStream>

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

QString filename = "";
filename.append(QString::number(QDateTime::currentMSecsSinceEpoch()));
filename.append(".txt");

QFile file(filename);
file.open(QIODevice::WriteOnly);
QTextStream out(&file);

QString output = "TEST";

qDebug() << output;
out << output;
return a.exec();
}
役に立ちましたか?

解決

The data does not get written to disk immediately: It sits in a buffer until it's flushed.

Close the file after you've finished writing.

(In my experience, the file is closed anyway when you quit the program, but it's good practice to do this explicitly)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top