
getchar()
如
char
a;a=getchar();//表示从键盘输入一个字符,并把他赋值给字符变量a;
还可以用scanf
语句输入数据。用法
scanf(格式控制,地址表列)
如int
a
scanf("%d",&a)
scanf("%d%d%d",&a,&b,&c)
"%d%d%d"表示按十进制整数形式输入三个数据。输入数据时,在两个数据之间以一个或多个空格间隔。
格式符
d表示输入十进制整数、
s用来输入字符串
f用来输入小数(实数)
你应该会用了吧
如果不会
欢迎你和我联系
很乐意为你服务
A|=B; 等价于 A=A|B;是先进行或运算,再把运算结果赋给A,之后的A已经不是原来的A了。
第一个键值判断后,你就键值变量已经被赋予新的值了。
如果正好按的是第一个键则能返回1,
如果不是第一个键按下,但经过 if((keyvalue|=0xfb)!=0xff)这一判断,其中的“keyvalue|=0xfb”就把keyvalue变成0xff了,后面的判断条件自然不会满足。
把这里的一些等于号再去掉试试看。
另外,建议你对于按键扫描程序使用switch case 语句,这样条理更清晰。
/*按键获取程序*/
unsigned int Key()
{
uchar keyvalue
keyvalue=P3
keyvalue|=0xc3
if((keyvalue|0xc3)==0xff)
{
Delay(10)
if((keyvalue|0xc3)==0xff)
{
return(0)
}
}
else
{
Delay(10)
if((keyvalue|0xc3)!=0xff)
{
if((keyvalue|0xfb)!=0xff)
{ return(1)}
if((keyvalue|0xf7)!=0xff)
{ return(2)}
if((keyvalue|0xef)!=0xff)
{ return(3)}
if((keyvalue|0xdf)!=0xff)
{ return(4)}
}
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)