当我编译和在开发的C++运行下面的代码,为什么当我不使用getch()时输出刚刚闪烁?
#include <stdio.h>
main()
{
printf("Hello world!");
}
输出只是闪烁。当我添加getch
时,它保持不变。
#include <stdio.h>
main()
{
printf("Hello world!");
getch();
}
为什么会发生这种情况?
当我编译和在开发的C++运行下面的代码,为什么当我不使用getch()时输出刚刚闪烁?
#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()
,这是稍微不同的,因为您需要按Enter键。
你知道什么是'getch'呢? – devnull
它从用户获得输入。不是吗? –
所以你知道答案,不是吗? – devnull