【问题标题】:Why the output just flashes when I do not use getch()?为什么当我不使用 getch() 时输出只是闪烁?
【发布时间】:2013-04-07 17:37:44
【问题描述】:

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

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

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

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

为什么会这样?

【问题讨论】:

  • 你知道getch是做什么的吗?
  • 它从用户那里获取输入。不是吗?
  • 你知道答案了吧?

标签: c windows dev-c++ getch


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2018-03-08
      • 2013-11-21
      • 1970-01-01
      • 2020-04-01
      • 2013-05-26
      • 2010-11-06
      • 2020-11-04
      • 1970-01-01
      • 2012-03-11
      相关资源
      最近更新 更多