【问题标题】:C++ Time Difference Between 2 Values两个值之间的 C++ 时间差
【发布时间】:2013-03-13 08:55:35
【问题描述】:

我试图捕捉数字旋转的速度。 我有一个程序,计数器从 0 开始。
每次用户单击按钮“加 1”。它将计数器加 1。
计数器最大值为 255。在 255 之后,它会回到 0。
现在我想显示从 0 增加到最大值再回到 0 所需的秒数。完成旋转的时间。用户点击按钮的速度会有所不同。

我需要知道的是如何为此使用计时器?该程序完成只是我需要编码的数字的完整旋转之间的计时器。

我正在使用

#include <time.h>    //* clock_t, clock, CLOCKS_PER_SEC

请指教。谢谢。

int counter;
counter = pkt[0];

cout << endl;

cout << counter << endl;

if(counter == 1)
{
    cout << "revolution" << endl;
}

【问题讨论】:

  • 使用次数。时钟()函数。但它没有给我我想要的东西。
  • @madziikoy 你可能不想要clock,因为这给了你(或应该给你)CPU时间,而不是挂钟时间。 time() 将返回挂钟时间,difftime 将告诉您两个挂钟时间之间的间隔。
  • 我更新了我的问题..

标签: c++ time counter


【解决方案1】:

如果您可以使用 C++11,&lt;chrono&gt; 可能是一个不错的选择。

它包含:

持续时间

它们测量时间跨度,例如:一分钟、两小时或十毫秒。 在这个库中,它们用持续时间类模板的对象来表示,它结合了计数表示和周期精度(例如,十毫秒有十作为计数表示,毫秒作为周期精度)。

时间点

对特定时间点的引用,例如某人的生日、今天的黎明或下一班火车经过的时间。 在这个库中,time_point 类模板的对象通过使用相对于纪元的持续时间(这是使用同一时钟的所有 time_point 对象共有的固定时间点)来表达这一点。

时钟

将时间点与实际物理时间相关联的框架。 该库提供了至少三个时钟,它们提供了将当前时间表示为 time_point 的方法:system_clock、steady_clock 和 high_resolution_clock。

【讨论】:

    【解决方案2】:

    difftime 可用于获取两个时间实例之间的差异。 difftime 页面上的示例代码给出了您要查找的内容。

    【讨论】:

    • 是的,我试过了,但我希望计时器在计数器为 0 时启动并在 255 时停止。并计算花费了多长时间。
    • "我试过了" 那么,什么你试过了吗?您的问题中没有可用的试用代码。
    【解决方案3】:
    #include <ctime>
    time_t start = time(NULL);
    

    将为您提供自 1970 年 1 月 1 日 00:00 UTC 以来经过的秒数。如果将其放在要跟踪的代码的开头,则只需再次获取时间即可计算执行完整旋转所需的时间。然后得到差异。 difftime 可以帮助您有所作为。不要将其视为真正运行的计时器。您只是在革命前后获得时间并发现差异。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-11
      • 1970-01-01
      • 1970-01-01
      • 2013-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多