/****************************************************************/ /*bioskey函数 */ /*函数原型: int bioskey(int cmd); */ /*函数功能: */ /* 利用函数bioskey可以实现三种功能,参数cmd为要实现的功能号,*/ /*值只能为0、1、2,具体含义如下: */ /* 0:在系统中有一个按键队列,所有的键盘按键都在这里排成队。该*/ /*功能就是如果按键队列中有按键,那么读取队列首位的按键,并返回按*/ /*键值;否则等待键盘按键出现。( 其中按键值的高字节为扫描码,低字*/ /*节为ASCII码) */ /* 1:如果按键队列中没有按键,那么返回零,否则返回非零。 */ /* 2:返回特殊按键Shift、Ctrl、Alt等键的按键状态。 */ /****************************************************************/ /*bioskey例程*/ #include <stdio.h> #include <bios.h> #include <ctype.h>
#define RIGHT 0x01 #define LEFT 0x02 #define CTRL 0x04 #define ALT 0x08
int main(void) { int key, modifiers;
/* 1号功能返回零,除非按下了一个键*/ while (bioskey(1) == 0);
/* 0号功能返回等待中按下的键*/ key = bioskey(0);
/* 2号功能用于判断特殊键是否被按下*/ modifiers = bioskey(2); if (modifiers) { printf("["); if (modifiers & RIGHT) printf("RIGHT"); if (modifiers & LEFT) printf("LEFT"); if (modifiers & CTRL) printf("CTRL"); if (modifiers & ALT) printf("ALT"); printf("]"); } /* print out the character read */ /* 打印出读进来的字符 */ if (isalnum(key & 0xFF)) printf("'%c'\n", key); else printf("%#02x\n", key); return 0; } 这是一个源程序,里面有一些不懂的地方,希望各位指教指教,感激不已! “if (isalnum(key & 0xFF))”中的isalnum()的参数有什么作用? “printf("%#02x\n", key);”这句里面的"%#02x“是什么意思? 盼望中.............