求助:测试液晶屏的程序有个问题。
#include <stdio.h>#include <graphics.h>
#include <math.h>
#include<time.h>
#define pi 3.1415926
int main(void)
{
int i,j,x,y,k=1;
int L,key1;
int a=DETECT,b;
int gdriver=DETECT , gmode;
initgraph(&gdriver, &gmode, "");
// setbkcolor(8);
// setcolor(4);
initgraph(&a,&b,"d:\\tc");
// while(1)
// {
for(L=1;L<=10;L++)
{
for(j=1;j<=15;j++)
{
delay(1000);
setbkcolor(j);
}
if(bioskey(1))
{
key1=bioskey(0);
if(key1==27) break;
}
}
// }
while( !kbhit() )
{
setbkcolor(11);
setcolor(13);
j+=10;
for(i=0;i<=2000;i++)
{
x=300+238*cos(2*i*pi/1000)*sin(i*pi/1000+j*pi/1000);
y=240+238*cos(2*i*pi/1000)*cos(i*pi/1000+j*pi/1000);
if(j%500==0) k++;
putpixel(x,y,k);
}
delay(300);
}
return 0;
}
在for循环中,我想按ESC键退出循环,可是实现不了,总是要等循环完了后才能退出,是咋儿地了泥?
----------------解决方案--------------------------------------------------------
这里不是玩嵌入式的!
问题太白,看不清!
----------------解决方案--------------------------------------------------------
是不是因为循环中耗费的时间比较长,而while( !kbhit() )被执行时,并非你按下ESC的那一时刻,因此引起的
将kbhit()返回赋给一个int变量,用该变量作为循环判断条件试一下
----------------解决方案--------------------------------------------------------