2012-04-29 100 views
3

我想使用QTextStream輸出到標準輸出,但沒有任何反應,除非我輸入一個字符。我曾嘗試過包括cstdlib,但這也不起作用。QTextStream不輸出任何東西,我會做錯什麼?

注意:我試着刪除所有引用我的stdin QTextStream和輸出正常工作。

#include <QTextStream> 

    QTextStream out(stdout);   
    out << "Please enter login username and password\n"; 
    QTextStream in(stdin); 
    out << "username:"; 
    QString username = in.readLine(); 
    out << "password:"; 
    QString password = in.readLine(); 

回答

8

您在每次流中推東西的時間後手動刷新緩衝區:

QTextStream out(stdout); 
    out << "Please enter login username and password\n"; 
    out.flush(); 
    QTextStream in(stdin); 
    out << "username:"; 
    out.flush(); 
    QString username = in.readLine(); 
    out << "password:"; 
    out.flush(); 
    QString password = in.readLine(); 

另外,附加<< endl也適用。

+2

另外,正如你所說的,儘管endl會導致流被刷新,只是\ n在字符串的末尾不會。 – 2012-04-29 23:05:25

+0

非常好,謝謝你Emanuele。我認爲這可能是這種情況。經過進一步的故障排除後,我注意到如果我在不同的示波器中分別使用它們,將會修復它。再次感謝你。 – 2012-04-30 00:09:11