如果用户未输入任何输入,如何继续

时间:2015-12-27 13:12:46

标签: c input

for(i=0;i<10;i++)
{
    ...
    input[i] = getch();
    delay(800);
}

有没有办法让程序连续进行 如果没有输入密钥?

(我正在尝试制作吉他英雄,如果没有输入颜色则继续)

3 个答案:

答案 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