C语言中,怎么接受键盘上的特殊键?

来源:百度知道 编辑:UC知道 时间:2024/06/07 03:15:43
我是一个C初学者,想编一个程序,通过接受键盘上的一些特殊按键(例如:ESC、F1、F2、...)来控制程序中各个功能的执行。我只会用scanf接受一些数字和字符,可是怎么接受这些键盘上的特殊键啊???
上网查了一下,有人说用bioskey()这个函数,可是好像在VC环境下通不过,有没有什么办法在VC环境下实现上面的要求啊???
楼下的有人提议测试出这些特殊键对应的ASCII码值,然后直接调用这些ASCII码值,我试过了,不管用啊

MS VC++ 用getch();
判断程序如下
#include<stdlib.h>
#include<stdio.h>
void main()
{
int i;
int key,key2;
key = getch();
// printf("\nkey value = %02x ",key);
if (key == 0x001b) {printf("ESC key"); exit(0);};
if (key == 0) {
key = getch();
switch (key) {
case 0x003b: printf("F1 key");break;
case 0x003c: printf("F2 key");break;
case 0x003d: printf("F3 key");break;
case 0x003e: printf("F4 key");break;
case 0x003f: printf("F5 key");break;
case 0x0040: printf("F6 key");break;
case 0x0041: printf("F7 key");break;
default: break;
};
};
exit(0);
}

好像不能用标准输入输出实现接受特殊键吧。
应该要用到更低级的输入出方式吧

VC 中有定义虚拟键.在里面的哪个头文件有定义,记不清是哪个了.
这里可以参考
http://zhidao.b