我希望当Del键被按下时,某个函数被调用。 如何使用getch()
如果可能或其他嵌套getch()
调用?如何检测键盘上的删除键何时被按下?
回答
函数_getch()
为光标和页面控制键返回一个“转义”值。对于键盘和功能键,即0
后面跟着键码,对于其他键是224
,后面跟着键码。
#include <stdio.h>
#include <conio.h>
#define ESC 27
#define ESC1 0
#define ESC2 224
int main()
{
int d=-1, e=-1;
printf("Press a key (Esc to quit)\n");
do {
d = _getch();
if (d == ESC1) {
e = _getch();
printf("%d %d\n", d, e);
} else if (d == ESC2) {
e = _getch();
printf("%d %d\n", d, e);
} else {
printf("%d\n", d);
}
} while (d != ESC);
return 0;
}
运行程序和按压三个键删除,德尔(键盘),Esc键产生输出
Press a key (Esc to quit)
224 83
0 83
27
当然,数字锁定必须关闭。
不知何故对我来说它是-32不是0或224,但总体来说它的工作原理,所以谢谢你! – xixhxix
'224 + 32 = 256' –
@xixhxix注意'_getch()'返回'int'而不是'char'。 –
你应该寻找这个函数kbhit()。它基本上是键盘命中和寻找del键ascii代码并与之匹配。
- 1. 检测删除键被按下
- 2. 如何删除键盘上的dataGridView行删除键按? c#
- 3. 如何检测iPhone中按下的键盘按键?
- 4. 检测何时按下@键
- 5. 检测键盘按下
- 6. iOS:如何检测使用BT键盘时按下的任何按键
- 7. 按下键盘上相应键时如何按下按钮? JavaFX
- 8. 检测Tab键按下蓝牙键盘
- 9. 检测正在按下的删除键
- 10. 如何检测是否有任何键盘功能键被按下?
- 11. 当键盘按键被按下时,显示按钮被按下
- 12. Java检测键被按下的时间
- 13. 在虚拟键盘上检测按键
- 14. 如何检测Android软键盘上的按键刷卡
- 15. 如何检测键盘在iOS 8中按下“PAGE UP”键?
- 16. 事件来检测iPad默认键盘隐藏键被按下
- 17. 如何在不使用键盘的情况下按下键盘上的按键?
- 18. Android如何检测“删除”按钮在键盘上按下删除单个字符?
- 19. 如何检测何时在Android键盘上按“开始”
- 20. 如何检测在textfield键盘上按哪个键?
- 21. 检测iPhone键盘上的空格和空格+ shift键按下
- 22. 如何检测在Actionscript 3中是否按下删除键?
- 23. 检查方向键何时被按下?
- 24. 当用户在Chrome上按键盘时如何检测`delete`和`.`?
- 25. 如何检测是否有任何按键被按下
- 26. 检测,如果Ctrl键被按下
- 27. 未检测到键盘的按键
- 28. 删除0-9按键的软键盘?
- 29. 如何检测Java 2d中的按键是否被按下?
- 30. UWP检测键盘按下并释放
你为什么编程平台? 'getch()'不是一个可移植的函数,你的问题的答案取决于平台。 – fuz
我正在使用Windows,如果解决方案只能在Windows平台上工作,我没有任何问题 – xixhxix
您唯一可以做错的就是不尝试。 _getch()返回0xE0,如果它是F1或Del这样的扩展键,则再次调用_getch()以获得密钥的扫描码。 Del键为0x53。 –