这不是作业,它更像是我们教授的挑战,但我会将它标记为一个。
问题是创建一个打字游戏,其中包含3个难度匹配,不同时间限制(以秒为单位)和分数的等级。现在我对程序本身没有任何问题,我遇到的问题是实现定时器,它应该是OS独立的(我假设,因为唯一的提示是它的time.h)。我所做的是错的,因为它只是粗略猜测我读到的关于time.h的内容,它也是丑陋的代码:
time_t start;
int timer = time(&start);
...
time_t current;
for(ctr=0;ctr<10;ctr++)
{
...
if(time(¤t) == (timer+40))
{
break;
}
...
}
有时工作,但大部分时间不工作,因为它只是一个粗略的猜测。任何建议将不胜感激。
答案 0 :(得分:2)
首先,您不需要 为time_t*
函数提供time
参数。如果你只是要使用它的返回值,那么调用time(NULL)
就好了(也很常见)。这样,如果没有使用start
和current
变量,则可以将其删除。
其次,time
的返回值为time_t
,而不是int
,因此timer
的类型应为time_t
。
最后,看看你的测试
if(time(¤t) == (timer+40))
并考虑一下如果从你开始做的其他事情开始以来经过40秒的时间会发生什么,现在,比如,从开始以来的43秒。你还不想休息吗?那么==
是否适当的测试?