C语言简单问题帮忙看下

来源:百度知道 编辑:UC知道 时间:2024/05/18 00:08:49
void ctrl(void)
{
int key=bioskey(0);
while(key!=F1){
switch(key)
{
case UP:
rectangle(115,115+44,115+40,115+40+44);
break;
case DOWN:
rectangle(115,115-44,115+40,115+40-44);
break;
case LEFT:
rectangle(115-44,115,115+40-44,115+40);
break;
case RIGHT:
rectangle(115+44,115,115+40+44,115+40);
break;
default:
;
}
}
}
我编了这么一个函数 是在图形模式下画矩形的
按上下左右键 分别在不同位置画出矩形
上下左右在最前面define了 那么我这个函数在运行的时候 为什么只是 第一下 管用呢 我想 按完了上在按下 应该画出俩啊
但是 好像我按完了一个键 比如上 他画完了 就死循环了。。。。是怎么回事?怎么解决这个问题?
麻烦改一下。。
我是想 除非我按F1 否则我按上下左右可以一直画矩形。。。

因为你--------
怎么说呢,
你想啊,你按了上 那么 key=UP;
switch{}运行完之后,进入循环 while(key!=F1)
但是你的key 没有更新啊 知道了吧

你应该在switch{}后加一个key=bioskey(0);

while(1==scanf/*这里是输入你改成你那输入方式好了*/ && key!=1)
这是我们做ACM题时候常用的重复循环输入方法 你可以试下我也没学多久C语言 发出来一起研究下

不是吧,F1 能直接写吗,是按16进制的编码的并不是 “F1”
采用16号中断, f1 键编码 0x3b00

用中断吧,中断好啊…

因为你在循环体内没有再次要求读入key所以key没有改变,所以死循环