最近,我一直试图从这个网站学习c++。不幸的是,每当我试图运行其中一个代码示例时,我看到该程序打开了大约半秒钟,然后立即关闭。有没有办法阻止程序立即关闭,以便我能看到我的努力的成果?


当前回答

在任何exit()函数之前或main()中的任何return之前添加以下行:

std::cout << "Paused, press ENTER to continue." << std::endl;
cin.ignore(100000, "\n");

其他回答

如果您从一个合格的IDE(如code::Blocks)运行代码,IDE将管理它用来运行代码的控制台,在应用程序关闭时保持打开状态。您不希望添加特殊的代码来保持控制台的打开状态,因为这将阻止它在IDE之外实际使用时正常工作。

James的解决方案适用于所有平台。

或者在Windows上,你也可以在从main函数返回之前添加以下内容:

  system("pause");

这将运行暂停命令,等待直到你按下一个键,并显示一个漂亮的消息按任意键继续…

以调试模式启动,使用F5运行代码 要停止你的控制台应用程序,不要点击红叉,而是按CTRL-break 你会在程序的最后碰到所有的断点。

对于Visual Studio(并且只有Visual Studio),下面的代码片段给了你一个'wait For keypress to continue'提示,它真正地等待用户显式地按下一个新键,首先刷新输入缓冲区:

#include <cstdio>
#include <tchar.h>
#include <conio.h>

_tprintf(_T("Press a key to continue "));
while( _kbhit() /* defined in conio.h */ ) _gettch();
_gettch();

注意,这里使用了tchar.h宏来兼容多个“字符集”(vc++称之为字符集)。

好吧,我猜你在Windows上使用Visual Studio…为什么?因为如果你在某种Linux操作系统上,那么你可能会从控制台运行它。

不管怎样,你可以像其他人建议的那样在程序的末尾添加一些无用的东西,或者你可以只按CTRL + F5(不用调试就开始),Visual Studio在完成后就会离开控制台。

如果你想运行调试版本而不给你的代码添加垃圾,另一个选择是打开控制台窗口(开始->运行-> cmd)并导航到调试输出目录。然后,只需输入可执行文件的名称,它就会在控制台中运行调试程序。然后你可以使用Visual Studio的attach to process或者其他你想要的东西。