Getch()未读取输入

时间:2018-11-26 22:31:31

标签: c getch

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

1.8.3

此代码显示“开始”,并且在按键时不显示任何内容。使用getch()读取和打印一个字符甚至没有循环我都没有运气。

1 个答案:

答案 0 :(得分:1)

发布的代码无法编译!

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

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

请注意,它们都返回int,而不是void

发布的代码缺少必要的#include语句

在询问运行时问题时(如正在做的那样),请发布[mcve],以便我们重新创建问题。

函数:kbhit()在按下某个键时返回非零值(不一定为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 );
        }
    }
}