如何检测何时按下键盘上的删除键?
How to detect when the delete key is pressed on the keyboard?
我希望在按下 Del 键时调用某个函数。
如果可能的话,我如何使用 getch()
或其他一些嵌套的 getch()
调用来实现?
你应该寻找这个函数 kbhit() 。它基本上是为了键盘点击并寻找 del key ascii 代码并与之匹配。
函数 _getch()
returns 光标和页面控制键的 "escaped" 值。对于键盘和功能键,即 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;
}
运行 程序并按三个键 Delete、Del(小键盘)、Esc 产生输出
Press a key (Esc to quit)
224 83
0 83
27
当然,Numlock 必须关闭。
我希望在按下 Del 键时调用某个函数。
如果可能的话,我如何使用 getch()
或其他一些嵌套的 getch()
调用来实现?
你应该寻找这个函数 kbhit() 。它基本上是为了键盘点击并寻找 del key ascii 代码并与之匹配。
函数 _getch()
returns 光标和页面控制键的 "escaped" 值。对于键盘和功能键,即 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;
}
运行 程序并按三个键 Delete、Del(小键盘)、Esc 产生输出
Press a key (Esc to quit)
224 83
0 83
27
当然,Numlock 必须关闭。