这可能是一个令人尴尬的问题,因为答案无疑是显而易见的。
我已经使用Visual Studio很多年了,但这是我第一次做任何“控制台应用程序”开发。
当我运行我的应用程序时,控制台窗口弹出,程序输出出现,然后当应用程序退出时窗口关闭。
是否有一种方法可以让它一直打开直到我检查输出,或者在窗口关闭后查看结果?
这可能是一个令人尴尬的问题,因为答案无疑是显而易见的。
我已经使用Visual Studio很多年了,但这是我第一次做任何“控制台应用程序”开发。
当我运行我的应用程序时,控制台窗口弹出,程序输出出现,然后当应用程序退出时窗口关闭。
是否有一种方法可以让它一直打开直到我检查输出,或者在窗口关闭后查看结果?
当前回答
在我的情况下,当我在VS 2017社区版上创建一个空c++项目时,我经历了这一点。您需要在配置属性下将子系统设置为“Console(/子系统:Console)”。
转到“查看”,然后选择“物业管理” 右键单击项目/解决方案并选择“属性”。这将打开Test属性页 导航到链接器,然后选择“系统” 点击“子系统”,会出现一个下拉框 选择“控制台(/子系统:控制台)” 应用并保存 下次使用“CTRL +F5”运行代码时,应该会看到输出。
其他回答
一个更好的解决方案:
atexit([] { system("PAUSE"); });
在程序开始的时候。
优点:
可以使用std::exit() 可以从主有多个返回 您可以在调试器下运行程序 IDE独立(+ OS独立,如果你使用cin.sync();cin.ignore ();Trick而不是system("pause");)
缺点:
必须修改代码 不会暂停std::terminate() 仍然会发生在IDE/调试器会话之外的程序中;你可以在Windows下使用:
extern "C" int __stdcall IsDebuggerPresent(void);
int main(int argc, char** argv) {
if (IsDebuggerPresent())
atexit([] {system("PAUSE"); });
...
}
在我的情况下,当我在VS 2017社区版上创建一个空c++项目时,我经历了这一点。您需要在配置属性下将子系统设置为“Console(/子系统:Console)”。
转到“查看”,然后选择“物业管理” 右键单击项目/解决方案并选择“属性”。这将打开Test属性页 导航到链接器,然后选择“系统” 点击“子系统”,会出现一个下拉框 选择“控制台(/子系统:控制台)” 应用并保存 下次使用“CTRL +F5”运行代码时,应该会看到输出。
Goto Debug菜单->按下StartWithoutDebugging
应该补充的是,从那时起情况已经发生了变化。在Windows 11(可能是10,我不能再检查了)上,新的终端应用程序现在包含各种控制台,PowerShell和其他会话,有自己的关闭设置。在设置中查找>默认>高级>配置文件终止行为。
如果它被设置为当程序以0退出时关闭,那么它将关闭,即使VS被告知相反的情况。
您也可以使用此选项
#include <conio.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main() {
.
.
.
getch();
return 0;
}