kbhit,input,getch出现问题了

img

  1. kbhit函数不能运行,也不知道是什么原因导致的,怎么才能停止报错

因为getch()函数和kbhit()函数的头文件<conio.h>没有导入;

然后,再把input变量定义一下;

最后,如果只是需要通过按键来控制图形输出,scanf()那里可以改为input=getch(),那个if也可以去掉。

修改如下:

参考链接:


#include <stdio.h>
#include <windows.h> 
#include <conio.h>  // 加上getch()函数和kbhit()函数的头文件 

int main(void){
    
    int i,j;
    int x=5;
    int y=5;
    char input;
    
    while(1){
        
        system("cls");
        
        for(i=0;i<x;i++){
            printf("  *  \n");
        }
        
        for(j=0;j<y;j++){
            printf("*****\n");
        }
        
        printf(" * * \n");
    //    scanf("%c",&input);  // 这个可以去掉 
        // https://blog.csdn.net/weixin_44350205/article/details/105667160
        
        input=getch();
                            
        if(input=='w'||input=='W') y--;
        if(input=='a'||input=='A') x--;
        if(input=='s'||input=='S') y++;
        if(input=='d'||input=='D') x++;

        
    }
    
    return 0;
}


img

代码不要截屏,直接复制粘贴上来

kbhit()函数需:#include <conio.h> 头文件, 2020.7.9 已弃用 kbhit(),需替换为_kbhit()。
变量 input 未定义?