加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

获取C中当前按下的键?

发布时间:2020-12-16 09:57:15 所属栏目:百科 来源:网络整理
导读:我需要能够在不完全停止程序的情况下按下当前角色.理想情况下,我希望程序继续运行,在while循环的每次迭代后检查密钥.由于这个原因,getch()是有问题的.我想在按下’q’键时突破while循环,但是while循环继续运行直到那时.我使用 Linux和gcc作为我的编译器. 解
我需要能够在不完全停止程序的情况下按下当前角色.理想情况下,我希望程序继续运行,在while循环的每次迭代后检查密钥.由于这个原因,getch()是有问题的.我想在按下’q’键时突破while循环,但是while循环继续运行直到那时.我使用 Linux和gcc作为我的编译器.

解决方法

在实践中,您应该使用库,这取决于您是在编写终端应用程序还是GUI.

对于终端应用程序,请阅读TTY demystified页面并使用ncurses或readline.请注意,在熟模式(默认情况下)中,tty具有内核管理的行缓冲区,因此无法通过getc获取单个字符.另请参阅termios(3)和tty(4)以及tty_ioctl(4)(您可以在sjr评论中建议的原始模式-e.g中设置tty,如http://shtrom.ssji.net/skb/getc.html所示,但我建议使用库).

对于在桌面上运行的图形应用程序,请使用某些工具包,如GTK或Qt.

顺便说一下,在这两种情况下,编程模型都不再与天真的getc函数兼容.

另请阅读Advanced Linux Programming并注意Linux有多个多路复用system calls(这些在syscalls(2)中列出),特别是poll(2) – 可能由ncurses或readline或Qt或Gtk库使用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读