这可能是一个令人尴尬的问题,因为答案无疑是显而易见的。
我已经使用Visual Studio很多年了,但这是我第一次做任何“控制台应用程序”开发。
当我运行我的应用程序时,控制台窗口弹出,程序输出出现,然后当应用程序退出时窗口关闭。
是否有一种方法可以让它一直打开直到我检查输出,或者在窗口关闭后查看结果?
这可能是一个令人尴尬的问题,因为答案无疑是显而易见的。
我已经使用Visual Studio很多年了,但这是我第一次做任何“控制台应用程序”开发。
当我运行我的应用程序时,控制台窗口弹出,程序输出出现,然后当应用程序退出时窗口关闭。
是否有一种方法可以让它一直打开直到我检查输出,或者在窗口关闭后查看结果?
当前回答
下面是C/ c++的一种方法:
#include <stdlib.h>
#ifdef _WIN32
#define WINPAUSE system("pause")
#endif
把它放在程序的顶部,如果它是在Windows系统上(#ifdef _WIN32),那么它将创建一个名为WINPAUSE的宏。当你想让程序暂停时,调用WINPAUSE;它将使用DOS命令暂停程序。对于Unix/Linux等其他系统,控制台不应该在程序退出时退出。
其他回答
(/子系统:控制台)不为我的vs2013工作(我已经有了它)。
“不调试地运行”不是一个选项,因为我不想在调试和查看输出之间切换。
我以
int main() {
...
#if _DEBUG
LOG_INFO("end, press key to close");
getchar();
#endif // _DEBUG
return 0;
}
qtcreator pre 2.6中使用的解决方案。qt在增长,vs在相反方向。我记得,在vs2008中我们不需要这样的技巧。
您也可以使用此选项
#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;
}
尝试在main()返回之前调用getchar()。
从Visual Studio 2017(15.9.4)开始,有一个选项:
Tools->Options->Debugging->Automatically close the console
对应的片段来自Visual Studio文档:
当调试停止时自动关闭控制台: 告诉Visual Studio在调试会话结束时关闭控制台。
只需按CNTRL + F5在外部命令行窗口中打开它(Visual Studio无法控制它)。
如果这不起作用,那么在代码的末尾添加以下代码:
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
这等待你按下一个键关闭终端窗口一旦代码已经结束。
如果你想在多个地方执行此操作,将上述代码放在一个方法中(例如private void Pause()),并在程序到达可能的结束时调用Pause()。