问:读取.txt文件时遇到问题

时间:2015-01-20 19:11:40

标签: c++ qt

我几天前开始使用Qt。但是,当我想读取文件时,虽然文件是打开的,但我无法从中获取单行。 qDebug的输出是"文件打开"但是while没有做任何事情(我没有得到"它是否有效?"文本在我的TextArea(textEdit))。 我错过了什么?该文件肯定存在,可以打开并有2行。

    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,向下滚动到&#34;打开文件&#34;)。 感谢您提前提供任何帮助!

编辑1:由于文件有2行(确切地说是&#34; Asd。&#34;和&#34; asd。&#34;),我已被替换与for(int i = 0; i<2; i++)同时进行。 QDebug现在告诉我两次:

Line:  ""
Line:  ""

我认为while(!in.atEnd())有一些东西。

EDIT2:替换了周期,将in.readLine()替换为ui->TextArea->setText(in.readAll().toLatin1());。结果仍然相同(如果我使用ui->TextArea->setText("Hey!");,它就可以了。

1 个答案:

答案 0 :(得分:1)

问题已通过以下方式解决:

<强> 1。重新安装Qt。

我使用Qt维护工具从我的电脑中删除软件,然后再次下载。也许有些文件丢失了。

<强> 2。文件无法打开的可能原因:文件夹错误

由于我已经命名了我的项目RPG(项目文件是RPG.pro),我将文件放入RPG文件夹中,而不是放在同一目录build_RPG_desktop [...]中的另一个文件夹中,包含ui_mainwindow头文件(我没有从主窗口更改默认名称)。一个文件&#34; Data.txt&#34;使用以下代码重新安装Qt后,可以在build_RPG [...]文件夹中成功读取:

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();
}

注意:我修改了TextEdit字段并将其名称设置为TextArea。 ui->TextArea->setText()设置textEdit字段的内容。