| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 393 人关注过本帖
标题:我刚学C碰到一个问题
只看楼主 加入收藏
jameszhangle
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-5-16
收藏
 问题点数:0 回复次数:2 
我刚学C碰到一个问题
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
void main()
{
int i;
int key,key2;
key = getchar();
printf("\nkey value = %02x ",key);
if (key == 0x001b) {printf("ESC key"); exit(0);};
if (key>0) {
key = getchar();
switch (key) {
case 0x003b: printf("F1 key");break;
case 0x003c: printf("F2 key");break;
case 0x003d: printf("F3 key");break;
case 0x003e: printf("F4 key");break;
case 0x003f: printf("F5 key");break;
case 0x0040: printf("F6 key");break;
case 0x0041: printf("F7 key");break;
default: break;
};
};
exit(0);
}
用VC6.0第一个key = getchar(); 能用键盘输入值,第二个key = getchar(); 怎么不能用键盘输入了呢??
搜索更多相关主题的帖子: include 
2007-09-11 21:07
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
if (key>0) {
getchar();
key = getchar();

这样试试 ````如果可以了```那就键盘缓冲的问题````


女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-09-11 21:38
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 

楼上说得对,由于第一个key = getchar(); 输入时,按回车键,
回车符还暂时留在输入流中,
当第二个key = getchar(); 时,它所得到是一个回车符(ASC为10)
int key,key2;
key = getchar();
printf("\nkey value = %02x ",key);
if (key == 0x001b) {printf("ESC key"); exit(0);};
if (key>0) {
key = getchar();
printf("\n%d\n",key);/*测试一下,key是不是为10?*/
switch (key) {
...


wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-09-11 21:46
快速回复:我刚学C碰到一个问题
数据加载中...
 
   



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

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