2011-09-07 47 views

回答

4

您可以用 system("pause");

*要当心,这不是portable手动添加它(在Windows上工作,但可能不会在其他地方工作)

+0

是否有某种默认设置? –

+0

如果您正在调试您的应用程序(使用F5),它会。如果你想在Visual Studio没有启动你的应用程序时完成它,我不这么认为。你必须添加manualy。这是您添加到应用程序的行为,您必须对其进行编程。 – Drahakar

+0

@Drahakar你是对的,它在Linux中不起作用。但是,代码仍然会编译,并会简单地说在终端上找不到命令。 – sj755

0

系统(“暂停”)肯定是什么你在问,但使用它是非常糟糕的做法。考虑在最后使用cin.get()并按回车。

+0

这是真的。使用'std :: cout <<“按任意按钮继续”<< std :: endl;''和'cin.get()'将是最便携的方式。 – Drahakar

+0

@Drahakar确实,虽然我可以理解人们喜欢使用系统(“暂停”),但它使得你的意图更加明显,即cin.get()。 – sj755

+0

我同意,加上我是[YAGNI] [http://en.wikipedia.org/wiki/YAGNI]的粉丝:) – Drahakar

1

没有内建函数。但是你可以做的kbhit()和残培(一个简单的循环),像这样:

#include <conio.h> 

void main(void) 
{ 
    // Display your message here 

    for(;;) 
    { 
     while(!kbhit()); 
     if (getch() == 0x0D) 
      break; // Break on ENTER 
    } 

    // Continue on here 
} 

http://support.microsoft.com/kb/44895

+0

我会低估这一点,但我不认为'void main'是合法的downvote的原因。 –

+0

@Etienne:哈哈,它绝对不是最好的做法。但是,由于我没有安装Visual C++(我使用GCC),我只是从support.microsoft.com/kb/44895复制声明。我假设VC++将与Microsoft自己的代码一起工作。我宁愿从正式源代码中引用不太理想的代码,也不愿在该编译器上测试它,而是提交自己的代码。 – Unsigned

2

改编当您运行使用“开始不调试”,在IDE控制台程序(Ctrl-F5 )你会得到你正在寻找的行为。

由于某种原因,当您在IDE下的调试器(“开始调试”或普通旧版本)中启动程序时,程序结束时没有得到该提示。如果您只是希望能够在调试器下运行时看到控制台窗口中的最后一点,则可以从main()(或main()的右括号)在return上设置断点。