如果使用scanf()时输入异常,可以用fflush(stdin)先将输入缓存清除再重新输入,如:
while(scanf("%d", &a) != 1){
fflush(stdin);
}
但是用bioskey(1),kbhit(),却不能使用fflush(stdin)清除原来的键值。当按下按键时,如果键值没有被其他函数如getch()接收,则再次用bioskey(1),kbhit()返回的值仍然表示为有按键按下代码如下:
while(1)
{
printf("bioskey(1) = %d\n", bioskey(1));
fflush(stdin);
sleep(2);
}
跃然一笑
沧海一幻觉
随时随地看视频慕课网APP
相关分类