70,008
社区成员




int a;
while(1)
{
a = _kbhit();
if (a != 0)
{
printf("1");
}
}
#include <conio.h>
#include <windows.h>
int main() {
int a,k;
while (1) {
a=_kbhit();
if (a!=0) {
cprintf("1");
k=getch();
if (0==k || 0xE0==k) k=k<<8|getch();
if (27==k) break; //按Esc键退出
} else {
cprintf("0");
}
Sleep(20);
}
return 0;
}
int a;
while(1)
{
a = _kbhit();
if (a != 0)
{
printf("1");
_getch();
}
else
printf("0");
}
加了个_getch(),实现是实现了,但是我在做游戏人物的移动,移动模块我用的是GetKeyState,但加上_getch()后,按住键盘人物会先动一下,卡一下,然后才一直移动。试着把_getch()换成rewind(stdin)或者fflush(stdin)来清除键盘缓冲,但是都没有效果,有其他清除键盘缓冲的方法吗
int a;
while(1)
{
a = _kbhit();
if (a != 0)
{
printf("1");
}
else
printf("0");
}
这样不就可以看到松开的后果了?