QTextStream没有输出任何东西,我可能做错了什么?

Cor*_*tin 3 c++ qt

我正在尝试使用QTextStream输出到stdout,但除非我输入一个字符,否则没有任何反应.我试过包括cstdlib,这也没用.

注意:我尝试删除对我的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();
Run Code Online (Sandbox Code Playgroud)

Ema*_*zzi 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();
Run Code Online (Sandbox Code Playgroud)

或者,附加<< endl也有效.

  • 另外,正如你所说,虽然endl将导致流被刷新,但只是在字符串的末尾没有\n. (2认同)