2012-02-24 103 views
3

我對C++和QT有點新鮮。 試圖運行在QtCreator一個非常簡單的程序,這在WinXP使用控制檯輸入:QtCreator 2.4.1控制檯輸入

#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 \測試集結桌面Qt_4_8_0_for_Desktop_- MinGW的 _Qt_SDK_ _ _>ž>> \調試\ test.exe的...

這是一個字符串。

該字符串的長度是17

輸入句子空格:

調試設爲Qml啓用。只能在安全的環境中使用!

我試過檢查「運行在終端」在項目>桌面>運行一些答案類似的問題在這裏建議和終端顯示,但它似乎無法與程序交互。終端的輸出:

按RETURN關閉此窗口...

+1

你可以把你的'cin'和'cout'放在main的範圍內,看看它是否有所作用? (不是最好的命名思路,人們會認爲他們是'std :: cin'/out。) – Mat 2012-02-24 13:51:22

+0

是的,試圖讓我的問題更清楚,謝謝。 – user1230585 2012-02-24 15:01:46

回答

3

我要說的是,檢查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; 
} 

其作品在我的電腦(操作系統,QtCreator 2.2.0)的罰款。

你確定你的Qt項目是正確的,你正在編譯正確的文件嗎?

+0

並在'cout <<「之後加上'cout.flush();'輸入一個句子:」;'...無論如何,我只需要在我的項目文件中添加CONFIG + = console',並且控制檯能正常工作。 – user1230585 2012-02-24 18:34:51