2013-04-13 36 views
1

我試圖尋找在這裏類似的問題,但所有這些都太複雜了,我剛開始用C++做我的Hello World,這裏的代碼,以防萬一:項目過時的VS2012

#include <iostream> 

int main() { 
std::cout << "Hello World!\n"; 
return 0; 
} 

它只工作正常,如果我編譯它,然後開始沒有調試,沒有重建它(當它說它已過時)。 如果我開始調試它仍然說它已經過時,但不管是否重建它,控制檯顯示爲半秒鐘,然後程序退出。 這是爲什麼?

+0

你檢查http://stackoverflow.com/a/2853912/819272 – TemplateRex

+0

是的,事情是我沒有任何頭文件,沒有別的比我的源文件... – Als

+1

程序退出,因爲它完成運行。如果你想停下來,你可以在調試器的'return 0;'行中添加一個斷點(這對於正確性來說不是必須的,因爲它是隱含的) – TemplateRex

回答

1

那是因爲你的程序,然後執行完成通過你

return 0; 

所以它發生和完成幾乎是瞬間,你需要一種方法能夠「暫停」你的應用程序的執行,看看你的輸出中。你可以做std :: cin >>。但我會建議使用系統暫停所有你需要補充的是

System("pause"); 

#include <stdlib.h> 

讓你的Hello World應用程序了應該像

#include <iostream> 
#include <stdlib.h> 
int main() 
{ 
    std::cout << "hello world\n"; 
    system("pause"); 
    return 0; 
} 
然而

system("pause") 

是一個窗口由於各種原因應避免出現嚴重的應用。

+0

有意義,但是我說的唯一方法是與我一起打開該窗口並沒有退出,而是暫停等待用戶按任意鍵退出。所以,如果它已經這樣做,我真的需要添加一些東西?此外,這只是一個問題 - 它仍然表示該項目絕對沒有理由過時。我不知道,真的 - 完全noob ... – Als

+0

你能更準確地告訴你項目是如何過時的嗎?編譯時警告?如果是這樣,請從輸出視圖粘貼消息。我個人還沒有完全轉換到vs2012,仍然大多使用2010年,但我仍然會盡力提供幫助。 – Zanven

0

有幾種方式來觀看這很快完成一個小程序的輸出:

  1. std::cin把一個無限循環while(true),或for(;;)

  2. 閱讀。

  3. 剛剛從 main()出口之前把一個斷點在調試器

  4. 從命令行重定向您的輸出my_program.exe > my_output.txt

我更喜歡方法號。 4,因爲它不需要改變你的代碼。