1

我希望在Del按下键时调用某个函数。getch()如果可能的话,我如何使用一些嵌套getch()调用来实现这一点?

4

2 回答 2

2

该函数_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;
}

运行程序并按三个键 Delete、Del(keypad)、Esc 产生输出

Press a key (Esc to quit)
224 83
0 83
27

当然,Numlock 必须关闭。

于 2015-12-24T11:54:38.477 回答
0

你应该寻找这个函数 kbhit() 。它基本上是用于键盘敲击并寻找 del 键 ascii 代码并与之匹配。

于 2015-12-24T11:34:21.060 回答