我尝试使用getch()和kbhit()来读取用户的输入,但它似乎没有识别出按下了键。
void main(){
printf("start\n");
while (1){
if (kbhit() == 1){
printf("in\n");
int k = getch();
printf("k: %d\n", k);
}
}
}此代码打印“开始”,在按下键时不打印任何内容。在没有循环的情况下,使用getch()读取和打印一个字符也没有什么好运气。
发布于 2018-11-26 22:50:38
发布的代码不编译!
main()只有两个有效的签名,不管visual可能允许什么:
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 );
}
}
}https://stackoverflow.com/questions/53490111
复制相似问题