extern "C" int __stdcall IsDebuggerPresent(void);
int main(int argc, char** argv) {
if (IsDebuggerPresent())
atexit([] {system("PAUSE"); });
...
}
0
使用:
cin.get();
要么
system("pause");
确保在 main() 函数末尾和 return 语句之前生成其中任何一个 .
18
您也可以使用此选项
#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;
}
18 回答
尝试在
main()
返回之前调用getchar()
.如果在没有调试的情况下运行(Ctrl F5),则默认情况下会提示您按返回关闭窗口 . 如果要使用调试器,则应在最后一行放置断点 .
右键单击您的项目
在
SubSystem
选项中选择控制台(/ SUBSYSTEM:CONSOLE) .现在尝试一下......它应该有效
这是C / C的一种方式:
将它放在程序的顶部,如果它在Windows系统(
#ifdef _WIN32
)上,那么它将创建一个名为WINPAUSE
的宏 . 每当您希望程序暂停时,请调用WINPAUSE;
并使用DOS命令暂停程序 . 对于像Unix / Linux这样的其他系统,控制台不应该在程序退出时退出 .转到调试菜单 - >按 StartWithoutDebugging
如果您使用的是.NET,请在程序结束前输入
Console.ReadLine()
.它将等待
<ENTER>
.(/ SUBSYSTEM:CONSOLE)对我的vs2013没用(我已经有了) .
“run without debugging”不是一个选项,因为我不想在调试和看到输出之间切换 .
我结束了
在qtcreator pre 2.6中使用的解决方案 . 现在,当qt正在增长时,vs正在走向另一条路 . 我记得在vs2008中我们不需要这样的技巧 .
这里's a solution that (1) doesn' t需要任何代码更改或断点,以及(2)程序终止后暂停,以便您可以看到打印的所有内容 . 在F5或Ctrl F5之后它会暂停 . 主要的缺点是VS2013 Express(经测试),它不加载符号,因此调试非常有限 .
runthenpause.bat
,内容如下:第一行将运行您提供的任何命令以及最多八个参数 . 第二行将......暂停 .
打开项目属性|配置属性|调试 .
将"Command Arguments"更改为
$(TargetPath)
(或"Command"中的任何内容) .将"Command"更改为
runthenpause.bat
的完整路径 .点击确定 .
现在,当您运行时,
runthenpause.bat
将启动您的应用程序,并在您的应用程序终止后,将暂停您以查看控制台输出 .如果我弄清楚如何加载符号,我会发布更新 . 我按this尝试
/Z7
但没有成功 .您可以从命令提示符运行可执行文件 . 这样你就可以看到所有输出 . 或者,你可以这样做:
这样,在输入
a
变量的数据之前,窗口不会关闭 .添加“|暂停“在项目属性的调试部分下的命令参数框中 .
只需按CNTRL F5即可在外部命令行窗口中打开它(Visual Studio无法控制它) .
如果这不起作用,那么将以下内容添加到代码的末尾:
这等待您在代码到达结束后按一个键关闭终端窗口 .
如果要在多个位置执行此操作,请将上述代码放在方法(例如
private void Pause()
)中,并在程序到达可能的末尾时调用Pause()
.把它作为你的最后一行代码:
一个更好的解决方案:
在你的程序的开头 .
优点:
可以使用std :: exit()
可以从main返回多个
您可以在调试器下运行程序
IDE独立(如果您使用
cin.sync(); cin.ignore();
技巧而不是system("pause");
,则OS独立)缺点:
必须修改代码
不会在std :: terminate()上暂停
仍将在IDE /调试器会话之外的程序中发生;您可以在Windows下使用以下命令阻止此
使用:
cin.get();
要么
system("pause");
确保在
main()
函数末尾和return
语句之前生成其中任何一个 .您也可以使用此选项
就我而言,当我在VS 2017社区版上创建一个Empty C项目时,我体验到了这一点 . 您需要在“配置属性”下将子系统设置为“控制台(/ SUBSYSTEM:CONSOLE)” .
转到"View"然后选择"Property Manager"
右键单击项目/解决方案,然后选择"Property" . 这将打开一个Test属性页面
导航到链接器,然后选择"System"
点击"SubSystem",出现一个下拉菜单
选择"Console (/SUBSYSTEM:CONSOLE)"
申请并保存
下次使用"CTRL +F5"运行代码时,应该看到输出 .
Visual Studio 2015 ,带 imports . 因为我讨厌代码示例时不提供所需的导入 .
使用
console.readline
. 你的是写作线但不是读它 .