Qt:文件读取不起作用
Posted
技术标签:
【中文标题】Qt:文件读取不起作用【英文标题】:Qt: file read does not work 【发布时间】:2013-12-28 15:33:24 【问题描述】:我想读取一个文件并将其放入一个 Qstring 中,但该文件不被读取 我在谷歌搜索了很多样本,但它不起作用...... 我要读文件...
using namespace std;
int main(int argc, char *argv[])
QApplication app(argc, argv);
QFile in1("file.txt");
QTextStream in(&in1);
if (in1.open(QFile::ReadOnly | QFile::Text))
QLabel *label = new QLabel("read");
label->show();
if (!in1.open(QFile::ReadOnly | QFile::Text))
QLabel *label = new QLabel("!read");
label->show();
QString s1;
in >> s1;
QLabel *label = new QLabel(s1);
label->show();
return app.exec();
给我看:!read
我包含了您能想到的所有内容,并且 file.txt 是真实存在的??!! :-(
【问题讨论】:
请正确缩进代码 对我来说,它显示read
,然后是!read
(请注意,open 被调用了两次;请使用else
而不是if (!...)
;在您的代码中,即使第一次打开是成功,第二个不是因为它已经打开了)然后是文件的内容如预期的那样。您确定将文件放在构建目录中吗?
“将无法工作”是什么意思?就我而言,内容是一个词; OP的代码读取一个单词,所以它起作用了。不是我决定只读一个词;)我应该写“第一个词”而不是“内容”。问题是关于打开一个文件,我猜,读取操作只是一个简单的测试,看看它是否真的有效。
好的,谢谢大家,但我想逐字阅读而不是 readAll() 或 readLine() ???
【参考方案1】:
下面的代码对我有用。
文件.txt
Hello World!
main.cpp
#include <QLabel>
#include <QApplication>
#include <QFile>
#include <QTextStream>
#include <QString>
#include <QDebug>
int main(int argc, char *argv[])
QApplication app(argc, argv);
QFile in1("file.txt");
QTextStream in(&in1);
if (in1.open(QFile::ReadOnly | QFile::Text))
QLabel *label = new QLabel("read");
label->show();
if (!in1.open(QFile::ReadOnly | QFile::Text))
QLabel *label = new QLabel("!read");
label->show();
QString s1;
in >> s1;
QLabel *label = new QLabel(s1);
label->show();
return app.exec();
构建
g++ -Wall -fPIC -lQt5Core -lQt5Widgets -I/usr/include/qt -I/usr/include/qt/QtCore -I/usr/include/qt/QtWidgets main.cpp && ./a.out
或main.pro
qmake 项目文件:
TEMPLATE = app
TARGET = main
greaterThan(QT_MAJOR_VERSION, 4):QT += widgets
SOURCES += main.cpp
它将为我显示所有三个标签,但我不确定这是否是您想要的。您的代码中也缺少错误处理。
【讨论】:
以上是关于Qt:文件读取不起作用的主要内容,如果未能解决你的问题,请参考以下文章
为啥 QMenu:hover 在 Qt Designer 中不起作用
Qt:showMaximized() 在 Windows 中不起作用