Getch() 不读取输入

Getch() not reading input

我尝试使用 getch() 和 kbhit() 来读取用户的输入,但它似乎无法识别按下的键。

void main(){
    printf("start\n");
    while (1){
        if (kbhit() == 1){
            printf("in\n");
            int k = getch();
            printf("k: %d\n", k);
        }
    }
}

此代码打印 "start" 并且在按下某个键时不打印任何内容。我没有运气使用 getch() 读取和打印一个字符,没有循环。

post编辑的代码无法编译!

无论 visual studio 可能允许什么,main() 只有 2 个有效签名:

int main( void )
int main( int argc, char *argv[] )

注意他们都是return一个int,而不是void

posted 代码缺少必要的 #include 语句

当问 运行 时间问题时,正如这个问题所做的那样,post [mcve] 这样我们就可以重现问题。

函数:kbhit() return按下某个键时的非零值(不一定是 1)。

建议:

#include <stdio.h>
#include <conio.h>  // note: this is a nonstandard header
                    // in Windows, so it is not portable
int main( void )
{
    printf("start\n");

    while (1)
    {
        if ( kbhit() )
        {
            printf( "in\n" );
            int k = getch();
            printf( "k: %d\n", k );
        }
    }
}