功能导航:→
 
发新话题
打印

求助 c高手进

求助 c高手进

求 c语言中 检测键盘是否按下的 函数,




keyhit_1()
{
   int key=0;
       while(0==key)
         {
             printf("********\n");

                   key=bioskey(1);                          //可以检测 但运行到那就停住了,需要按下键盘才继续运行,
                    if(0!=key)
                           exit(0);
         }
}


keyhit_2()
{
   int key=0;
       while(0==key)
         {
             printf("********\n");

                   key=bioskey(0);                          //可以检测 但在整个程序中只能检测一次;如果重复调用这个函数 第二次就不行了;
                    if(0!=key)
                           exit(0);
         }
}


而 kbhit();不能分辨按下的是什么建;


说白了就想实现一个动画效果,如果没按下指定建 就不停的循环播放图片;

TOP

在学校里问老师也没结果。

TOP

如果没记错,这个和键盘缓冲区有关系! 还有就是BIOSKEY这个函数你了解透彻吗?
可以看一下这2方面的相关书籍!
当天还是那么蓝,云还是那么潇洒,我就不能哭,因为你的离去没有带走我的世界!

TOP

当cmd是1,bioskey()查询是否按下一个键,若按下一个键则返回非零值,否则返回0。 所以你的keyhit_1()运行到那就停住了,需要按下键盘才继续运行;
当cmd是0,bioskey()返回下一个在键盘键入的值(它将等待到按下一个键)。它返回一个16位的二进制数,包括两个不同的值。当按下一个普通键时,它的低8位数存放该字符的ASCII码;对于特殊键(如方向键、F1~F12等等),低8位为0,高8位字节存放该键的扫描码。 exit(0);是你的程序进程终止了。所以你的keyhit_2()可以检测 但在整个程序中只能检测一次;如果重复调用这个函数 第二次就不行了;

TOP

发新话题