for(i=0;i<10;i++)
{
...
input[i] = getch();
delay(800);
}
有没有办法让程序连续进行 如果没有输入密钥?
(我正在尝试制作吉他英雄,如果没有输入颜色则继续)
答案 0 :(得分:1)
如果您使用的是MSVC,可以这样做。您可以根据需要尽快输入密钥,因此您不必猜测时间,但每个密钥必须在前一个密钥的800毫秒内。
#include <stdio.h>
#include <conio.h>
#include <time.h>
#define LENGTH 10
#define TIMEOUT (0.8 * CLOCKS_PER_SEC)
int main (void)
{
int i;
int keys[LENGTH] = {0};
clock_t target;
for (i=0; i<LENGTH; i++) {
target = clock() + (clock_t)TIMEOUT;
while(clock() < target) {
if (_kbhit()) {
keys[i] = _getch();
break;
}
}
printf("%d\n", keys[i]);
}
return 0;
}
程序输出,显示我在时间内键入4个键的位置,以及我没有输入的位置:
0
0
49
0
50
51
52
0
0
0
答案 1 :(得分:1)
for(i=0;i<10;i++)
{
...
if(_kbhit())
input[i] = getch();
delay(800);
}
如果你在目标平台上有_kbhit / kbhit函数,这应该可以工作。
答案 2 :(得分:1)
我正在使用Gcc编译器,在cmd中运行(Windows 10) 将_kbhit()工作? 周末愉快。 Merry Chrismes