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'和原来的一样)求指导,最好有源码!!
展开
 我来答
笃侠6A
推荐于2016-05-02 · TA获得超过3734个赞
知道大有可为答主
回答量:3205
采纳率:75%
帮助的人:3262万
展开全部
该函数的功能是 检查当前是否有键盘输入,若有则返回一个非0值,否则返回0。它是非阻塞函数,即执行该函数后程序不会停下,而是进行执行。
其用法,一般是先用该函数判断是否有键盘输入,如果有则用getch等读键盘函数来读取该输入,如果没有键盘输入就继续执行程序。例如:
while(1){
//...
if(_kbhit())
{
ch=getch();
if(ch==27) break; //如果按了ESC键则跳出循环
}

}
追问
if(ch==27) break; //如果按了ESC键则跳出循环
这里==27是ascll码吗?
还有,必须要写ascll码吗?能写=='o'吗?
wdghy123
2015-08-18 · TA获得超过1583个赞
知道大有可为答主
回答量:1514
采纳率:95%
帮助的人:731万
展开全部
可以用getch(),这个函数直接读键盘输入,不需要等待回车键
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式