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


当前回答

如果您正在使用Visual Studio,并且正在从IDE启动控制台应用程序:

按CTRL-F5(启动而不调试)将启动应用程序并保持控制台窗口打开,直到按下任何键。

其他回答

你可以只创建一个批处理文件。例如,如果你的程序名为helloworld.exe,一些代码将是:

@echo off
:1
cls
call helloworld.exe
pause >nul
goto :1

简单地把它放在代码的末尾:

而(1){}

这个函数将一直运行下去(或者直到您关闭控制台为止),并将防止控制台自己关闭。

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

如果您实际上是在Visual c++中调试应用程序,请按F5或工具栏上的绿色三角形。如果你不是真的调试它(你没有设置断点),按Ctrl+F5或选择菜单上的Start Without debugging(它通常在Debug菜单上,我同意这是令人困惑的)。它会更快一点,更重要的是,它会在结束时暂停,而无需更改代码。

或者,打开命令提示符,导航到exe所在的文件夹,并通过键入它的名称来运行它。这样,当它完成运行时,命令提示符不会关闭,并且您可以看到输出。我更喜欢这两种方法,而不是添加代码,在应用程序完成时停止它。

我只是这样做:

//clear buffer, wait for input to close program
std::cin.clear(); std::cin.ignore(INT_MAX, '\n');
std::cin.get();
return 0;

注意:只有在程序早期使用过cin时,才需要清除cin缓冲区。同样使用std::numeric_limits::max()可能比INT_MAX更好,但它有点啰嗦,通常没有必要。