| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 649 人关注过本帖
标题:[求助]请大家帮我看看
只看楼主 加入收藏
txbhj
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2004-12-19
收藏
 问题点数:0 回复次数:3 
[求助]请大家帮我看看

/****************************************************************/ /*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“是什么意思? 盼望中.............

2005-01-09 13:21
hxping
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2005-1-10
收藏
得分:0 
哇,对不起我是新来的,我只看懂了一句!!

/sign.png" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www./sign.png');}" onmousewheel="return imgzoom(this);" alt="" />
2005-01-10 09:41
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 
int isalnum(int ch);
当内部参数为字母或数字时返回非零值,否则,返回零!!

而“#”是磅符号,他会在八进制或十六进制前加上合理的前缀!!!

差点把你忘了...
2005-01-10 15:31
txbhj
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2004-12-19
收藏
得分:0 
谢谢版主了,我还有一个小小的疑问,就是这里的参数(key &amp; 0xFF)到底怎么来理解它?

[此贴子已经被作者于2005-1-10 16:31:50编辑过]



我本菜鸟, 请多关照
2005-01-10 16:30
快速回复:[求助]请大家帮我看看
数据加载中...
 
   



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

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