1

当我在 Dev C++ 中编译并运行以下代码时,

#include <stdio.h>
main()
{
     printf("Hello world!");
}

输出只是闪烁。当我添加getch时,它会保留。

#include <stdio.h>
main()
{
     printf("Hello world!");
     getch();
}

为什么会这样?

4

2 回答 2

3

getch()导致您的程序在终止之前等待用户输入。Win32 控制台应用程序的一个恼人的事情是,一旦程序终止,控制台就会关闭(因此它只是闪烁)。

Win9x 下的旧 DOS 程序并非如此(控制台默认保持打开状态,除非在 DOS 快捷方式属性中选择了复选框)。

如果您在命令提示符中运行程序的两个版本,您将看到第二个版本仅在您按下一个键后才返回到提示符。

于 2013-04-15T14:44:58.253 回答
1

您的控制台正在消失,因为它已完成并且程序正在退出。正如您所见,使用getch()等待输入会阻止程序退出,但它不是可移植的,作为替代方案,您可以使用std::cin.get(),这略有不同,因为您需要按回车键。

于 2013-04-15T14:43:54.647 回答