Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
_kbhit()的函数 我是C++初学者,尝试编写一个基于C++控制台的蛇游戏。当我不连续按一个键就无法移动蛇时,我被卡住了。现在我只需按一次键就可以了,但我仍然不理解帮助我这么做的_kbhit()函数 void snake_movement(){ if(_kbhit()) switch (getch()) { case 'w': y_cordinate--; break; case 'a': x_cordinate--; break; case 's': y_cordinate++; break; case 'd': x_cordinate++; break; default: break; } }_C++ - Fatal编程技术网

_kbhit()的函数 我是C++初学者,尝试编写一个基于C++控制台的蛇游戏。当我不连续按一个键就无法移动蛇时,我被卡住了。现在我只需按一次键就可以了,但我仍然不理解帮助我这么做的_kbhit()函数 void snake_movement(){ if(_kbhit()) switch (getch()) { case 'w': y_cordinate--; break; case 'a': x_cordinate--; break; case 's': y_cordinate++; break; case 'd': x_cordinate++; break; default: break; } }

_kbhit()的函数 我是C++初学者,尝试编写一个基于C++控制台的蛇游戏。当我不连续按一个键就无法移动蛇时,我被卡住了。现在我只需按一次键就可以了,但我仍然不理解帮助我这么做的_kbhit()函数 void snake_movement(){ if(_kbhit()) switch (getch()) { case 'w': y_cordinate--; break; case 'a': x_cordinate--; break; case 's': y_cordinate++; break; case 'd': x_cordinate++; break; default: break; } },c++,C++,\u getch()是一个阻塞函数。如果输入缓冲区中没有可用的按键,它将等待输入缓冲区中有可用的按键。因此,您的程序会被卡在\u getch()中,直到按下一个键为止,这就是为什么它不会“工作”,除非您一直按下该键,以便\u getch()可以继续返回到您的程序。它仍然会被“卡住”,因为新的击键只在重复键的频率下可用。也就是说:在最好的情况下,\u getch()每秒可能返回几十次。但仅当按下某个键,并且操作系统支持该键的自动重放时 另一方面,\u kbhit()不会阻塞。如果输入缓冲区中没有可

\u getch()
是一个阻塞函数。如果输入缓冲区中没有可用的按键,它将等待输入缓冲区中有可用的按键。因此,您的程序会被卡在
\u getch()
中,直到按下一个键为止,这就是为什么它不会“工作”,除非您一直按下该键,以便
\u getch()
可以继续返回到您的程序。它仍然会被“卡住”,因为新的击键只在重复键的频率下可用。也就是说:在最好的情况下,
\u getch()
每秒可能返回几十次。但仅当按下某个键,并且操作系统支持该键的自动重放时


另一方面,
\u kbhit()
不会阻塞。如果输入缓冲区中没有可用的按键,则立即返回零值。否则,它将返回一个非零值。这表示密钥可用,您可以调用
\u getch()
来获取它
\u kbhit()
返回非零保证
\u getch()
不会阻塞,也就是说,它不会等待,但会立即返回您需要的结果。

您有什么问题?是的,很抱歉,我在这里更改了它@code>\u getch()?