使用C中的按键进行每分钟节拍计数

时间:2015-06-23 01:51:23

标签: c keypress

我正在构建一个C程序来确定一分钟内按键的次数(想想“每分钟节拍数”),这样我以后就可以在我正在制作的节拍器中使用它。

我想在C中构建类似this的内容。如果发生按键,我会如何阅读按键?

1 个答案:

答案 0 :(得分:0)

使用fgetc()读取ENTER键的按键。

使用gettimeofday()来测量以微秒为单位的时间,计算从上一次按键开始经过的时间,并将其除以60。

#include <sys/time.h>
#include <stdio.h>
#include <string.h>

int main(void)
{
    struct timeval t0, t1;
    float elapsed;
    gettimeofday(&t0, 0);
    while(1) {
        fgetc(stdin);
        gettimeofday(&t1, 0);
        elapsed = (t1.tv_sec - t0.tv_sec) * 1000.0f + (t1.tv_usec - t0.tv_usec) / 1000.0f;
        memcpy(&t0, &t1, sizeof(struct timeval));
        printf("%f\n", 60000./elapsed);
    }
    return 0;
}

您可能希望平均显示的值(例如保持运行平均值)以减少差异。

相关问题