2013-04-13 35 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,因为它不需要改变你的代码。