2012-04-29 15 views
3

QTextStreamをstdoutに出力しようとしていますが、文字を入力しなければ何も起こりません。私は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を付けるだけではストリームはフラッシュされません。 –

+0

優秀、あなたに感謝Emanuele。私はこれがそうだったかもしれないと思った。さらにトラブルシューティングを行った後、別のスコープでそれぞれ別々に使用すると、これが修正されていることに気付きました。ありがとうございました。 –

関連する問題