我有一个包含以下内容的.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));
}
}
答案 0 :(得分:0)
每次执行此方法时:
void MainWindow::on_Next_clicked()
{
ui->ShowEn->clear();
ifstream Sfile("E:\\en.txt");
getData(Sfile);
Sfile.close();
}
重新打开文件,第一位用getData读取。然后关闭该文件。每次打开文件时,都会从头开始读取,这就是每次都看到相同字符串的原因。
您可能想在其他地方打开文件(可能是窗口的构造函数?),然后只需在每次单击按钮时读取它。这将需要MainWindow
中的成员变量来保存打开的文件。在你完成之前不要关闭它。