C语言 大神指导! _kbhit函数应该怎么用?或者有更好的方法读取键盘输入方法!!
比如:贪吃蛇的实现#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>voidmain(){...
比如:贪吃蛇的实现
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
void main()
{
int top = 0;
char a[20] = { 0 };
scanf("%c", &a[top]);
getchar();
while (a[top]!='o')
{
for (int i = 0;i <= top;i++)
{
printf("%c", a[i]);
}
printf("\n");
top++;
scanf("%c", &a[top]);
getchar();
}
system("pause");
}
我的代码实现的是输入一个字符回车后显示(如果不是字符'o'),我现在想直接从键盘读取字符。
以前是要按一个回车继续现在等待输入 ,我自己想了一下用while循环 但是_kbhit 函数不会用啊(如果不是字符'o'和原来的一样)求指导,最好有源码!! 展开
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
void main()
{
int top = 0;
char a[20] = { 0 };
scanf("%c", &a[top]);
getchar();
while (a[top]!='o')
{
for (int i = 0;i <= top;i++)
{
printf("%c", a[i]);
}
printf("\n");
top++;
scanf("%c", &a[top]);
getchar();
}
system("pause");
}
我的代码实现的是输入一个字符回车后显示(如果不是字符'o'),我现在想直接从键盘读取字符。
以前是要按一个回车继续现在等待输入 ,我自己想了一下用while循环 但是_kbhit 函数不会用啊(如果不是字符'o'和原来的一样)求指导,最好有源码!! 展开
2个回答
展开全部
该函数的功能是 检查当前是否有键盘输入,若有则返回一个非0值,否则返回0。它是非阻塞函数,即执行该函数后程序不会停下,而是进行执行。
其用法,一般是先用该函数判断是否有键盘输入,如果有则用getch等读键盘函数来读取该输入,如果没有键盘输入就继续执行程序。例如:
while(1){
//...
if(_kbhit())
{
ch=getch();
if(ch==27) break; //如果按了ESC键则跳出循环
}
}
其用法,一般是先用该函数判断是否有键盘输入,如果有则用getch等读键盘函数来读取该输入,如果没有键盘输入就继续执行程序。例如:
while(1){
//...
if(_kbhit())
{
ch=getch();
if(ch==27) break; //如果按了ESC键则跳出循环
}
}
追问
if(ch==27) break; //如果按了ESC键则跳出循环
这里==27是ascll码吗?
还有,必须要写ascll码吗?能写=='o'吗?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询