c语言bioskey的问题

来源:百度知道 编辑:UC知道 时间:2024/06/11 05:54:30
下面这个程序我用来检测输入的按键是什么,可是运行时不象预期那样按下一个键就能输出一个键,请帮忙运行看看,谢谢
#include<stdio.h>
#include<conio.h>
#include<dos.h>
#include<bios.h>
#define ESC 283
#define UP 18432
#define DOWN 20480
#define LEFT 19200
#define RIGHT 19712
void main()
{
int key=2;
while(key!=ESC)
{
key=2;
printf("wait for keypress...\n");
sleep(1);
key=bioskey(1);
switch(key)
{
case ESC:printf("you have press ESC...\n");break;
case UP:printf("you have press UP...\n");break;
case DOWN:printf("you have press DOWN...\n");break;
case LEFT:printf("you have press LEFT...\n");break;
case RIGHT:printf("you have press RIGHT...\n");break;
default:break;
}
}
}


改成参数为0不就成了程序执行到bioskey就暂停了.我想在不影响程序运行下检测并且获取输入的按键的.

你把key=bioskey(1); 改成key=bioskey(0); 就好了

bioskey(1)查询是否按下一个键,若按下一个键则返回非零值,否则返回0。
这是判断是否按下了一个键,返回的值也不一定是你设的值,你用switch去找,显然逻辑上就不对了.

key=bioskey(1); 改成key=bioskey(0);