c++ - 显示 txt 文件详细信息

标签 c++ qt text

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

good  
bad  
hi 

我希望“下一步”按钮循环显示这些词,但在我的代码中我只得到“好”这个词。当我单击下一步时,它不显示下一个词。这是我使用 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));
    }
}

最佳答案

每次执行此方法时:

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

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

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

关于c++ - 显示 txt 文件详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29807384/

相关文章:

c++ - 将 const std::shared_ptr<const T> 转换为 boost::shared_ptr<T>

c++ - 查找由 2 点定义的 2 条线的交点

c++ - 为什么我的 HUD 未在 OpenGL 中渲染?

c++ - Qt非矩形窗口

c++ - Qt QSslSocket "The certificate is self-signed, and untrusted"

c++ - 从文本文件中读取并保存到两个或三个变量

c++ - 这种线程间通信的方法安全吗?

javascript - 如何修复 javascript 实时语法突出显示中的反向文本?

R:如何在数据框中输出唯一的字符串(文本)?

swift - 如何在 SWIFT 中在圆圈上绘制文本