显示txt文件详细信息

时间:2015-04-22 19:45:27

标签: c++ qt text

我有一个包含以下内容的.txt文件:

good  
bad  
hi 

我希望“下一步”按钮循环显示这些单词,但是使用我的代码我只能得到“#34; good"”。当我单击“下一步”时,它不会显示下一个单词。这是我的代码Qt 5.4

void MainWindow::on_Next_clicked()
{
    ui->ShowEn->clear();
    ifstream Sfile("E:\\en.txt");
    getData(Sfile);
    Sfile.close();
}

void MainWindow::getData(std::ifstream& myfile)
{

    if(!myfile.eof())
    {
        std::string str;
        getline(myfile, str);
        ui->ShowEn->setText(QString::fromStdString(str));
    }
}

1 个答案:

答案 0 :(得分:0)

每次执行此方法时:

void MainWindow::on_Next_clicked()
{
    ui->ShowEn->clear();
    ifstream Sfile("E:\\en.txt");
    getData(Sfile);
   Sfile.close();
}

重新打开文件,第一位用getData读取。然后关闭该文件。每次打开文件时,都会从头开始读取,这就是每次都看到相同字符串的原因。

您可能想在其他地方打开文件(可能是窗口的构造函数?),然后只需在每次单击按钮时读取它。这将需要MainWindow中的成员变量来保存打开的文件。在你完成之前不要关闭它。