我有一个包含以下内容的 .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/