社区
C语言
帖子详情
isalnum函数
eatfox
2003-12-02 03:00:37
这是一个检测键盘功能函数,前面用BIOSKEY获得键盘输入,并赋给KEY:
int key,modifiers;
while(bioskey(2)==0);
key=bioskey(0);
后面判断并读出来:
if(isalnum(key&0xFF)
printf("'%c'",key);
else printf("%#02x\n",key);
既然isalnum 本身就是检测输入是否普通建为什么还要加个&0xFF呢?
请问各位后面那个PRINTF中的是什么意思啊?
...全文
293
5
打赏
收藏
isalnum函数
这是一个检测键盘功能函数,前面用BIOSKEY获得键盘输入,并赋给KEY: int key,modifiers; while(bioskey(2)==0); key=bioskey(0); 后面判断并读出来: if(isalnum(key&0xFF) printf("'%c'",key); else printf("%#02x\n",key); 既然isalnum 本身就是检测输入是否普通建为什么还要加个&0xFF呢? 请问各位后面那个PRINTF中的是什么意思啊?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
winco
2003-12-02
打赏
举报
回复
楼上OK。因为字符是小于等于255(FF)
liloaka
2003-12-02
打赏
举报
回复
这是因为bioskey(0)返回一个整型数,低八位是输入字符的ASCII 码,如果低八位为0,则高八位为扩展键盘码。
key&0xFF为TRUE,则说明key低八位是输入字符的ASCII 码;
FALSE,则说明key高八位为扩展键盘码。
DaNiao
2003-12-02
打赏
举报
回复
isalnum的参数应该是一个ascii码,返回是否是字母数字,而不是你说的什么“普通键”
我觉得空格和windows键是最普通的键了
你那个key里得到的是所谓扫描码,有两个字节,低字节是ascii码,高字节表示你是否同时按下了ctrl alt shift之类的键
key&0xFF就是切出key的低字节部分(ascii码部分)
"%#02x" 表示输出小写的16进制数,保证2位,不足用0补
arfi
2003-12-02
打赏
举报
回复
"%#02x"
按16进制格式输出,加上#会在前面显示0x字样,2为输出的宽度,0表示宽度不足时前面补0
hanyixin
2003-12-02
打赏
举报
回复
加个0xFF可以得到一个把key的高位清为0的值。
linux库
函数
大全
linux库
函数
大全,对
函数
的说明的很清楚,希望大家珍惜啊... .
Linux C
函数
参考手册_带书签_非常清晰.pdf
linux c
函数
参考手册,c代码编程参考,api说明,带书签、非常清晰 c库,编程参考,极具阅读价值,抽时间可以过一遍
LinuxC
函数
参考手册.doc
LinuxC
函数
参考手册
Linux C
函数
api
基本上Linux C的
函数
介绍都有 并且每个
函数
都有使用说明和实例 都对Linux C开发的初级人员非常有用
Linux C
函数
参考手册(PDF版).pdf
Linux C
函数
参考手册PDF版,C语言开发常备工具书
C语言
70,020
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章