我尝试使用getch()和kbhit()读取用户的输入,但似乎无法识别出已按下键。
1.8.3
此代码显示“开始”,并且在按键时不显示任何内容。使用getch()读取和打印一个字符甚至没有循环我都没有运气。
答案 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 );
}
}
}