当我在Dev C ++中编译并运行以下代码时,
#include <stdio.h>
main()
{
printf("Hello world!");
}
输出刚刚闪烁。当我添加getch
时,它会保留。
#include <stdio.h>
main()
{
printf("Hello world!");
getch();
}
为什么会这样?
答案 0 :(得分:3)
getch()
会导致程序在终止之前等待用户输入。 Win32控制台应用程序的一个令人不快的事情是,一旦程序终止,控制台就会关闭(因此它只是闪烁)。
Win9x下的旧DOS程序不是这种情况(默认情况下控制台会保持打开状态,除非在DOS快捷方式属性中选中了复选框)。
如果在命令提示符下运行程序的两个版本,您将看到第二个版本仅在您按下某个键后返回到提示符。
答案 1 :(得分:1)
您的控制台正在消失,因为它已完成且程序正在退出。正如您所看到使用getch()
等待输入阻止程序退出但它不可移植,作为替代方法,您可以使用std::cin.get()
,这稍微不同,因为您需要按Enter键。