【问题标题】:time limit in C Language - A Quiz ProgramC 语言中的时间限制 - 测验程序
【发布时间】:2012-11-18 01:29:50
【问题描述】:

我有一个测验程序的代码如下,我需要添加一个时间限制。现在,代码根据使用的时间执行测验分数。但我希望它在程序启动后的 5 分钟内退出。

使用的标题

#include<time.h>

初始化值如下

time_t initialtime,finaltime;

我在测验开始前使用此代码开始计时

initialtime=time(NULL);

程序结束时,我通过这段代码得到时间

finaltime=time(NULL);

现在,如何在最后时间达到 10 分钟之前结束程序?我应该在 Main 函数中使用什么代码?

PS:如果需要,我可以发布完整的代码。

【问题讨论】:

  • 最简单的答案:编写一个循环来检查当前时间 - initialtime > 10 分钟。几乎所有定时应用程序都必须在 some 级别上执行类似的操作。
  • 是的。这很明显。但是在这里,我需要让用户知道剩下的时间。像滴答作响的东西。感谢回复。希望这个也有同样的效果。

标签: c time limit


【解决方案1】:

大致如下:

int main()
{
    //....
    time_t initial_time = time(NULL);
    float time_limit = 600.0f;

    //...
    while ( (time(NULL) - initial_time) < time_limit )
    {
        // ... do stuff
    }

    // clean up etc.
}

这将循环直到特定的持续时间过去。

【讨论】:

    【解决方案2】:

    你有两个选择- 1.在过程/程序中,不断检查所用时间是否达到10分钟。 这很容易。 2. 将程序作为一个简单的计时器启动,10 分钟后自动退出。 现在在这个程序中,在计时器启动之前,将您需要的操作作为一个单独的线程启动。这更准确。

    【讨论】:

      【解决方案3】:

      有很多方法可以做到这一点:

      • 编写一个循环来检查每次迭代的 10 分钟是否结束
      • 产生一个sleeps 10 分钟的线程,然后结束程序
      • 实现一个alarm,在 10 分钟后发出信号

      另见:

      Stack Overflow 的好处是你可以search for "C Timeout",而且"function timeout c" on Google 也能提供很好的结果

      【讨论】:

      • 太好了。感谢您的帮助 :) 感谢您花时间格式化这些结果。我非常感谢。
      猜你喜欢
      • 2012-06-24
      • 2010-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-04
      • 2017-03-04
      • 2015-04-26
      • 1970-01-01
      相关资源
      最近更新 更多