Qt:在阅读.txt文件时遇到问题
我几天前开始使用Qt。但是,当我想要读取文件时,虽然文件已打开,但我无法从中读取一行文件。 qDebug的输出是“文件已打开”,但这一段时间没有做任何事情(我没有在TextArea(textEdit)中找到“它工作吗?”)文本。 我错过了什么?该文件当然有,可以打开,并有2行。Qt:在阅读.txt文件时遇到问题
QFile file("savefile.txt");
if (!file.open(QIODevice::ReadOnly))
{
qDebug()<<"The file is not open.";
return;
}
else
{
qDebug()<<"The file is open.";
QString line;
QTextStream in(&file);
while(!in.atEnd())
{
line = in.readLine();
qDebug()<<"Line: "<<line.toLatin1();
ui->TextArea->setText("Does it work?");
}
file.close();
}
那么,我错过了什么? 我试图按照Qt入门教程做这个,但没有创建对话框(Link to the page,向下滚动到“打开文件”)。 感谢您提前提供任何帮助!
编辑1:由于该文件有2行(确切地说是“Asd。”和“asd。”),我用for(int i = 0; i<2; i++)
替换了这段时间。 QDebug现在告诉我两次:
Line: ""
Line: ""
我假设有一些东西与while(!in.atEnd())
。
编辑2:取代周期和in.readLine()
至ui->TextArea->setText(in.readAll().toLatin1());
。结果仍然是相同的(如果我用ui->TextArea->setText("Hey!");
,它的工作原理
的问题已得到解决方式如下:。
1.重新安装的Qt
我使用Qt的维护工具从我的电脑删除该软件,然后重新下载,也许有些文件不见了
2.可能的原因不打开文件:。错误的文件夹
因为我已经命名了我的项目RPG(项目文件是RPG.pro),所以我将这些文件放到了RPG文件夹中,而不是放入同一目录中的另一个文件夹build_RPG_desktop [...],其中包含ui_mainwindow头文件(我没有改变从mainwindow的默认名称)。在build_RPG [...]文件夹中的文件“DATA.TXT”能成功地与下面的代码重新安装后的Qt阅读:
QString fileName = "Data.txt";
if (!fileName.isEmpty())
{
QFile file(fileName);
if (!file.open(QIODevice::ReadOnly))
{
qDebug()<<"Error. File not found";
return;
}
QTextStream in(&file);
ui->TextArea->setText(in.readAll());
file.close();
}
注:我修改我的文字编辑字段并设置其名字的TextArea。 ui->TextArea->setText()
设置textEdit字段的内容。
如果您对此文件或任何文件的完整路径进行硬编码,它会工作吗?我得到的可能是你的程序的“当前目录”被设置为除了你的文件所在的地方。 – indiv 2015-01-20 19:18:47
将文件直接放到C:\ savefile.txt中。结果是一样的。从if(!file.open()),我收集文件被识别并打开。 – KvB 2015-01-20 19:31:52
确保你没有使用C:\ savefile.txt作为字符串。用C++记住你需要在你的C++代码中使用''C:\\ savefile.txt“或'”C:/savefile.txt“'代替C:\ savefile.txt。虽然编译器应该警告你,但很多初学者会忽略警告。 – drescherjm 2015-01-20 20:10:02