gpt4 book ai didi

c - 在 C 中获取当前按下的键?

转载 作者:IT王子 更新时间:2023-10-29 01:05:47 24 4
gpt4 key购买 nike

我需要能够在不完全停止程序的情况下获取当前按下的字符。理想情况下,我希望程序继续运行,在 while 循环的每次迭代后检查 key 。由于这个原因,getch() 是有问题的。我想在按下“q”键时跳出 while 循环,但 while 循环要继续运行到那时。我使用带有 gcc 的 Linux 作为我的编译器。

最佳答案

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

对于终端应用,请阅读 TTY demystified页面并使用ncursesreadline 。请注意,在熟模式(默认情况下)下,一个 tty有一个内核管理的行缓冲区,因此不可能通过 getc 获取单个字符。另见 termios(3)tty(4)tty_ioctl(4) (您可以忍受在原始模式下设置 tty 的痛苦 - 例如 http://shtrom.ssji.net/skb/getc.htmlsjr 的评论中建议 - 但我建议使用库)。

对于在桌面上运行的图形应用程序使用一些工具包,例如GTKQt .

顺便说一句,在这两种情况下,编程模型都不再与原始的 getc 函数兼容。

另请阅读 Advanced Linux Programming并注意 Linux 有多个多路复用 system calls (这些列在 syscalls(2) 中),特别是 poll(2) - 这可能被 ncursesreadlineQtGtk 库使用。

关于c - 在 C 中获取当前按下的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29361643/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com