如何阻止控制台在退出时关闭? [复制]
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
调用,强制它在退出之前等待你按下一个键。
【讨论】:
谢谢,但没有通用的解决方案吗?我不想将它添加到每个程序的末尾以上是关于如何阻止控制台在退出时关闭? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
当用户突然关闭我的控制台应用程序时,是不是可以返回特定的退出代码? [复制]
程序在python中运行时如何防止用户输入控制台? [复制]
当我在控制器功能中间中止或退出时,Ajax 请求被 Cors 阻止