2011-06-05 158 views
2

我想Qt Creator中創建下面的簡單的控制檯應用程序:非Qt的控制檯應用程序

#include <iostream> 

int main(int argc, char* argv[]) 
{ 
    std::cout << "Hello WOrld"; 

    return 0; 
} 

我已經看到了SO一些可能重複,我已經選中「運行在終端」選項在運行設置。控制檯窗口在CTRL + R上彈出,但不顯示「Hello World」,只是「按Enter鍵退出」。

以上是創建一個空項目。

我已經嘗試創建一個「Qt控制檯應用程序」,它會生成下面的代碼。這確實工作正常,但我想要上面的簡單的非Qt版本。

#include <QtCore/QCoreApplication> 
#include <iostream> 

int main(int argc, char *argv[]) 
{ 
    QCoreApplication a(argc, argv); 

    std::cout << "Hello World"; 

    return a.exec(); 
} 
+0

我忘了補充,我在Win Xp上,它排除了其他一些重複的建議。 – 2011-06-06 00:19:02

+0

也排除我的答案。 :)我或多或少地假設* sensible * console程序的用法 - 一個Windows應用程序不一定具有標準管道,除非你明確聲明它具有它們。 – Arafangion 2011-06-07 04:34:07

回答

1

經過很長時間再次嘗試Qt後,它現在可以工作。項目文件默認具有「CONFIG - = qt」。我不確定這是否能解決當時的問題,但這是我能看到的唯一區別。

完全.pro文件:

TEMPLATE = app 
CONFIG += console 
CONFIG -= qt 

SOURCES += main.cpp 
0

我可以用例子中看到的唯一的缺點是該流不刷新(請在std ::法院行更改爲:

std::cout << "Hello World" << std::endl; 

然而,這是不太可能的問題你有,雖然我發現在​​下面的例子意味着它確實是一個緩衝區處理問題,其中QtCreator對緩衝作出了一些假設(注意,該url添加了一個std :: cin.get()調用,該調用強制應用程序暫停,因此,你當然應該看到一些輸出)。

+0

這還沒有完成。 cin.get()也是不需要的,現在我只需要按兩次enter就可以退出。我仍然沒有得到你好的輸出。 – 2011-06-06 01:11:06

+0

嘗試在正常的控制檯窗口中運行它,而不是QTCreator的控制檯,假設它們有區別。 – Arafangion 2011-06-06 03:13:01

2

除了勾選「在終端中運行」,您需要將「CONFIG + = console」添加到.pro文件(如果您使用的是qmake)。

TEMPLATE = app 

CONFIG += console 

SOURCES += main.cpp 
+0

+1是有意義的,因爲平臺是windows。 – Arafangion 2011-06-07 04:36:13

0

如果你絆倒了這個線程,因爲應用程序立即退出和控制檯只顯示「按Enter鍵退出」:

這是你的應用程序的行爲,如果你從QtCreator啓動它,它不能找到依賴的DLL(順便說一句,非常沒有幫助)。爲了找出錯過了什麼,你可以在沒有QtCreator的情況下啓動你的應用程序。從屬DLL必須位於此處列出的其中一個位置http://msdn.microsoft.com/de-de/library/7d83bc18.aspx