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 );
}
}
}
我尝试使用 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 );
}
}
}