【解决方案】QT读写文件

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/a19990412/article/details/79774650

下面的这些东西,在网上可能都会找到类似的文章,但是真正使用的时候,却没有办法打开对应的文件。

解决方案: 打开项目所在文件夹。

比如我这里的项目叫Test

这里写图片描述

可以看到前面两个有build-* 文件夹。
讲文件名全部拉长就可以知道。

这里写图片描述

其实,在Test中,是不存在exe这个文件的。
我们平时在QT中执行文件的时候,其实,都是执行的前面两个文件夹的文件。

比如对于下面的这个程序,我就应该把那个txt文件添加到这个
这里写图片描述

之后就可以直接改了。
这样虽然麻烦点,但是有一个好处,就是将源代码文件跟最后生成的文件封装起来了。这样更好打包~


QT读写文件

虽然QT使用C++,当然也可以使用fstream。但是学会用QT封装好了的API会大幅度提高效率。

下面是通过QT,封装好的QFile类来进行的操作。

#include <QCoreApplication>
#include <QFile>
#include <QtDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QFile file("testFile.txt");
    if (file.open(QIODevice::ReadOnly)) {
        char buffer[2048];
        qint64 lineLen = file.readLine(buffer, sizeof(buffer)); // read things form
        if (lineLen != -1) {
            qDebug()<< buffer;
        }
    }
    return a.exec();
}

还可以使用下面代码,来写文件

下面代码操作很简单。但是要注意下。
这个文件同样取决于是什么模式下的启动?
比如一般来说都是debug模式。
然后,就会改写在debug模式的文件夹下的文件。

#include <QCoreApplication>
#include <QFile>
#include <QTextStream>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QFile file("testFile.txt");
    if (file.open(QFile::WriteOnly|QFile::Truncate)) {
        QTextStream out(&file);
        out << QObject::tr("score:")<< qSetFieldWidth(10)<< left<< 90<< endl;
    }
    return a.exec();
}
展开阅读全文

没有更多推荐了,返回首页