2015-04-22 185 views
1

我有一個.txt文件與這些內容:顯示TXT文件的詳細信息

good 
bad 
hi 

我想通過這句話Next按鈕週期,但我的代碼我只得到了字「好」。當我點擊下一步時,它不會顯示下一個單詞。這是我的代碼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)); 
    } 
} 
+3

Sfile需要經過多次'on_Next_clicked'。=>把它放到MainWindow範圍內等等 – deviantfan

+0

使字詞更清晰一點,語法問題較小。 – Barry

回答

0

每次執行該方法時:

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

打開文件重新和第一位被讀取的getData。該文件然後關閉。每次打開文件時,都會從頭開始閱讀,這就是爲什麼每次都看到相同的字符串。

您可能想要在別的地方打開文件(窗口的構造函數,也許?),然後在每個按鈕上單擊閱讀它。這將需要MainWindow中的成員變量來保存打開的文件。在完成之前不要關閉它。

+0

真的非常感謝你的幫助 – Raminlich