如何阻止控制台在退出时关闭? [复制]

Posted

技术标签:

【中文标题】如何阻止控制台在退出时关闭? [复制]【英文标题】:How to stop console from closing on exit? [duplicate] 【发布时间】:2011-05-06 07:23:00 【问题描述】:

我使用的是 Visual Studio 2010 和 Windows 7 x64

命令提示符在退出后关闭,即使我使用了“不调试就启动”。有没有我可以使用的设置?

【问题讨论】:

即使您在没有调试的情况下启动也会发生这种情况......嗯......但是下面的任何建议都可以:-)干杯 【参考方案1】:

Console.Readline(); 呢?

【讨论】:

【参考方案2】:

您可以简单地按 Ctrl+F5 而不是 F5 来运行构建的代码。然后它会提示您按任意键继续。或者你可以在代码末尾使用这一行 -> system("pause"); 让它等到你按下任意键。

但是,如果你使用上面那行system("pause");并按Ctrl+F5运行,它会提示你两次!

【讨论】:

这应该是投票最多的答案。 同意。我已将此标记为正确答案。 我不明白为什么这个问题说控制台关闭,即使他使用“不调试启动”运行,但 Ctrl+F5 有效,这只是“不调试启动”的热键. 运行 ctrl + F5 将在没有调试器的情况下运行应用程序。 (msdn.microsoft.com/en-US/library/8b59xk0f(v=vs.90).aspx) 这和在发布模式下运行是不一样的。 我简直不敢相信它被认为是一种解决方案。 IDE 应该被配置成我们想要的行为,而不是强迫我们根据 IDE 行为改变我们的代码。我对我的代码非常投入,所以它随时可以发布。【参考方案3】:

是的,在 VS2010 中,他们以某种方式改变了这种行为。 打开您的项目并导航到以下菜单:项目 -> YourProjectName 属性 -> 配置属性 -> 链接器 -> 系统。在 SubSystem 字段中,使用下拉菜单选择控制台 (/SUBSYSTEM:CONSOLE) 并应用更改。 “不调试就开始”现在应该做正确的事情了。

或者,如果您使用 C++ 或 C 编写,则输入

system("pause");

在程序结束时,即使在调试模式下运行,您也会收到“按任意键继续...”。

【讨论】:

对于控制台应用程序之一,我也有这种奇怪的行为。它以前可以工作,然后突然停止了。 这给出了一个错误:system 是一个命名空间,但被用作变量 太棒了。我遇到这个问题是因为 VS2010 向导生成器创建的项目模板没有这个标志。【参考方案4】:

您可以打开命令提示符、CD 到 Debug 或 Release 文件夹,然后键入您的 exe 的名称。当我向人们提出这个建议时,他们认为这是一项繁重的工作,但这里是最低限度的点击次数和击键次数:

在 Visual Studio 中,右键单击解决方案资源管理器中的项目或带有文件名的选项卡(如果解决方案中有文件打开),然后选择打开包含文件夹或在 Windows 资源管理器中打开 在出现的 Windows 资源管理器窗口中,双击您的方式找到包含 exe 的文件夹 在资源管理器窗口的背景中按住 Shift 并右键单击并选择在此处打开命令窗口 键入可执行文件的第一个字母并按 Tab 直到出现全名 按回车

我认为这是 14 次击键和点击(例如,将 shift-right-click 计为两次),这确实不多。一旦你有了命令提示符,当然,再次运行它只是向上箭头,输入。

【讨论】:

OP 希望控制台在 Visual Studio 中调试时保持打开状态 - 这个答案对此无济于事。如果您只想在不调试的情况下运行它,则更是如此。另外,如果您对击键次数过多和次数不多感兴趣,请查看 Nir ​​Eyal 关于用户界面的书。事实证明,14 是很多步骤。【参考方案5】:

向你的程序添加一个Console.ReadKey 调用,强制它在退出之前等待你按下一个键。

【讨论】:

谢谢,但没有通用的解决方案吗?我不想将它添加到每个程序的末尾

以上是关于如何阻止控制台在退出时关闭? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何阻止 C# 控制台应用程序自动关闭? [复制]

当用户突然关闭我的控制台应用程序时,是不是可以返回特定的退出代码? [复制]

程序在python中运行时如何防止用户输入控制台? [复制]

当我在控制器功能中间中止或退出时,Ajax 请求被 Cors 阻止

选择另一个 UITextView 时,如何阻止 UITextView 退出第一响应者/关闭键盘?

线程运行一个我无法控制的无限操作。如何阻止它? [复制]