我在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/

10-16 19:10