QtCreator 2.4.1控制台输入

时间:2012-02-24 12:55:28

标签: qt qt-creator

我对C ++和QT有些新意。 试图在QtCreator中运行一个非常简单的程序,它在WinXP上使用控制台输入:

#include <QString>
#include <QTextStream>

int main() {
    QTextStream streamOut(stdout);
    QTextStream streamIn(stdin);
    QString s1("This "), s2("is a "), s3("string.");
    QString s4 = s1 + s2 + s3;
    streamOut << s4 << endl;
    streamOut << "The length of that string is " << s4.length() << endl;
    streamOut << "Enter a sentence with whitespaces: " << endl;
    s4 = streamIn.readLine();
    streamOut << "Here is your sentence: \n" << s4 << endl;
    streamOut << "The length of your sentence is: " << s4.length() << endl;
    return 0;
}

问题是原生QTCreator的应用程序输出,因为它的名称,不支持输入内容。这是应用程序输出:

  

启动C:\ QProject \ test-build-desktop-Qt_4_8_0_for_Desktop _- MinGW _Qt_SDK_ _ _ &gt; z&gt;&gt; \ debug \ TEST.EXE ...

     

这是一个字符串。

     

该字符串的长度为17

     

输入带空格的句子:

     

启用Qml调试。只能在安全的环境中使用它!

我已经尝试在项目&gt;桌面&gt;中检查“在终端中运行”运行,因为这里建议的类似问题的一些答案和终端显示,但它似乎无论如何都不会与程序交互。终端的输出:

  

按RETURN关闭此窗口......

1 个答案:

答案 0 :(得分:2)

我想说检查Run in terminal是正确且需要的。

令人惊讶的是,您没有收到任何编译错误,因为第8行有错误:

cout << "Enter a sentence: "<<;

最后<<错了。

更正你的代码,我明白了:

#include <QString>
#include <QTextStream>
QTextStream cout(stdout);
QTextStream cin(stdin);

int main() {
    QString s2;
    cout << "Enter a sentence: ";
    s2 = cin.readLine();
    cout << "Here is your sentence:" << s2 << endl;
    cout << "The length of your sentence is: " << s2.length() << endl;
    return 0;
}

在我的电脑上工作正常(WinXP,QtCreator 2.2.0)。

您确定您的Qt项目是否正确并且您正在编译正确的文件?