c - getchar() 在用户写入时

标签 c timing getchar

我正在用 C 提示符程序模拟电视游戏。玩家有 60 秒的时间来猜一个单词,当他找到它时,他必须按回车键才能得到一个新的单词:单词发生变化,单词数量和剩余时间升级。 因为“enter listener”部分是一个 getchar,所以我在猜测是否有可能在等待使用 getchar() 按下回车键的同时实时更新剩余时间。

while(1) {
        system("clear"); //RAND WORD
        parola = parole[rand() % n]; //PRINT WORDS, NEW WORD, SECONDS LEFT
        printf("\n\n[%d]\t\t%s\t\t%d", indovinate, parola, secLeft);

        gettimeofday(&initTime, NULL);
        int initSec = initTime.tv_sec; //WAIT FOR PAYLER TO PRESS ENTER
        getchar();

        gettimeofday(&tookTime, NULL);
        int tookSec = tookTime.tv_sec - initSec; //UPGRADE TIME TOOK
        secLeft -= tookSec;

最佳答案

尝试kbhit(), 它是 conio.h 库的一部分。 它基本上检查是否按下了一个键。如果不是,您可以更新时间。如果是,您可以输入答案。

if(kbhit()){
    a = getch();
}
else{
    //update time
}

你可能想使用getch(),它不需要玩家按回车键。

可能有比 c 更好的方法来做到这一点。 (别问我,我不干这种事)

但如果这只是一个很酷的项目,那就继续吧。

关于c - getchar() 在用户写入时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56508358/

相关文章:

javascript - 多步Javascript计时算法

c - 在 c 中使用 getchar() 扫描时的垃圾值

c - 对整数使用 scanf

vba - 在宏中指定 Action 顺序?

c++ - Sleep() 函数用法

c - 即使我释放了所有分配,总是内存泄漏

c - sigsetjmp() 和 siglongjmp() : The mask signals are not the same on call to sigsetjmp() and return of siglongjmp()

c - getchar() 在内部是如何工作的?

c - C语言中如何判断一个数是二进制还是十进制

c - 如何在 C 中使用预处理器执行/跳过某些代码行?