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