【问题标题】:How to detect that arrow key is pressed using C under Linux or Solaris?如何检测在 Linux 或 Solaris 下使用 C 按下箭头键?
【发布时间】:2009-02-20 02:13:32
【问题描述】:

在 C 程序中检测在 Linux 或 Solaris 下按下箭头键的最佳方法是什么?

据我所知,没有标准的 C 函数可以做到这一点。 我不想使用 int86 函数。我需要以便携的方式进行。

编辑:我问的是控制台应用程序。

【问题讨论】:

  • 您指的是控制台应用程序(即没有窗口)吗?

标签: c linux solaris


【解决方案1】:

您应该查看 curses/ncurses 库,该库将为您提供控制台应用程序的高级屏幕和键盘处理。

有很多 documentation 可用于 curses,这是一个广泛的库。

有一篇关于这个问题的文章here

【讨论】:

  • 这个答案很准确。特别是如果你想要它便携,不要重新发明轮子,只需使用一个库就可以避免头痛。
  • 正如弗朗西斯所指出的,原始文档链接现在是 404。重新指向新来源
【解决方案2】:

我相信你的程序应该切换到non-canonical mode 才能读取特殊字符

【讨论】:

    【解决方案3】:

    如果您想在不使用 SDL 之类的东西的情况下执行此操作,您应该查看 select() 语句以及如何使用它来读取控制台输入。

    【讨论】:

      猜你喜欢
      • 2022-01-12
      • 1970-01-01
      • 2010-11-14
      • 2016-11-11
      • 2014-09-03
      相关资源
      最近更新 更多