| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2873 人关注过本帖
标题:bioskey函数到底怎么用??
只看楼主 加入收藏
满江风
Rank: 1
等 级:新手上路
帖 子:102
专家分:0
注 册:2007-10-30
收藏
 问题点数:0 回复次数:5 
bioskey函数到底怎么用??
我找了一些资料,可是看不懂 哪位大侠可以教一下?

[[italic] 本帖最后由 满江风 于 2008-1-2 18:54 编辑 [/italic]]
搜索更多相关主题的帖子: bioskey 函数 大侠 资料 
2008-01-02 18:51
linsua
Rank: 1
等 级:新手上路
帖 子:275
专家分:0
注 册:2008-1-2
收藏
得分:0 
回复 1# 的帖子
这个是TC自带的函数,既不属于C标准库又不属于C++标准库只能在DOS下用.windows下还是要调用windows API 。在TC下混没什么前途吧。
函数名: bioskey
  能: 直接使用BIOS服务的键盘接口
  法: int bioskey(int cmd);
程序例:
[code]

#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;

   /* function 1 returns 0 until a key is pressed */
   while (bioskey(1) == 0);

   /* function 0 returns the key that is waiting */
   key = bioskey(0);

   /* use function 2 to determine if shift keys were used */
   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;
}

[\code]

如果你对我的话感到再明白不过 那恐怕你是误解了我的意思
2008-01-02 19:08
满江风
Rank: 1
等 级:新手上路
帖 子:102
专家分:0
注 册:2007-10-30
收藏
得分:0 
你说的对!!tc没前途
我只是想了解一下这函数,你找的正是我看不懂的,你能解释一下吗
2008-01-02 19:19
linsua
Rank: 1
等 级:新手上路
帖 子:275
专家分:0
注 册:2008-1-2
收藏
得分:0 
我手上也没有TC,也没用过TC,不过这段代码还好理解吧。
/* function 1 returns 0 until a key is pressed */
   while (bioskey(1) == 0);
//bioskey(1); 给bioskey()的参数是1时,只有当键盘上的一个键按下时,bioskey()才返回,才结束。才执行其他//代//码。
 /* function 0 returns the key that is waiting */
   key = bioskey(0);
//bioskey(0); 给bioskey()的参数是0时, bioskey() 返回当前键盘上按下的一个键值。

/* use function 2 to determine if shift keys were used */
   modifiers = bioskey(2);
//bioskey(2); 给bioskey()的参数是2时, bioskey()返回 shift键是否被按下。

其他都是具体的键值的问题,查一查手册就好吧。其他我也不懂了。

[[italic] 本帖最后由 linsua 于 2008-1-2 19:32 编辑 [/italic]]

如果你对我的话感到再明白不过 那恐怕你是误解了我的意思
2008-01-02 19:30
满江风
Rank: 1
等 级:新手上路
帖 子:102
专家分:0
注 册:2007-10-30
收藏
得分:0 
原来如此,都是英文惹的祸
谢啦~
2008-01-02 19:36
tangweimin
Rank: 1
来 自:湖南郴州
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-2-7
收藏
得分:0 
都2012年了,我才明白“bioskey(0); 给bioskey()的参数是0时, bioskey() 返回当前键盘上按下的一个键值。”嘿嘿
2012-02-07 22:06
快速回复:bioskey函数到底怎么用??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013765 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved