如何在Linux或Solaris下使用C检测箭头键被按下?
在 Linux 或 Solaris 下检测 C 程序中按下箭头键的最佳方法是什么?
据我所知,没有标准的 C 函数可以做到这一点。 我不想使用 int86 函数。 我需要以便携的方式做到这一点。
编辑:我问的是控制台应用程序。
What is the best way to detect in a C program that arrow key is pressed under Linux or Solaris?
As I know there is no standard C function that can do it.
I don't want to use int86 function. I need to do it in a portable way.
Edit: I am asking about console applications.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您应该查看curses/ncurses 库,它将为您提供控制台应用程序的高级屏幕和键盘处理。
有很多可用于curses的文档,这是一个内容广泛的库。
关于这个问题有一篇文章此处
You should look at the curses/ncurses library which will give you advanced screen and keyboard handling for console applications.
There is a lot of documentation available for curses, which is an extensive library.
There is a write-up on this very question available here
我相信你的程序应该切换到 非规范mode 能够读取特殊字符
I believe your program should switch into non-canonical mode to be able to read special characters
如果您想在不使用 SDL 之类的情况下执行此操作,您应该研究 select() 语句以及如何使用它从控制台输入读取。
If you wanted to do this without using something like SDL, you should look into the select() statement and how to use it to read from console input.