【问题标题】:C++ high_resolution_clock weird outputC++ high_resolution_clock 奇怪的输出
【发布时间】:2016-08-13 19:45:37
【问题描述】:

我目前正在尝试计算 cpp 中循环的增量时间。目前我使用此代码

#include <chrono>
int main()
{

typedef std::chrono::high_resolution_clock Clock;
typedef std::chrono::duration<float> fsec;

auto lastTime = Clock::now();
auto currentTime = Clock::now();
fsec passedTime = currentTime - lastTime;
while (true)
{
    lastTime = currentTime;
    printf("");
    printf("");
    printf("");
    printf("");
    printf("");
    printf("");
    printf("");
    printf("");
    printf("");
    printf("");
    currentTime = Clock::now();
    passedTime = currentTime - lastTime;
    printf("%i\n", passedTime.count());
}

return 0;
}

这不是我在程序中使用的实际代码,而是增量时间计算和输出与此示例中的完全相同。

当 GLFW 锁定到 60 滴答/秒时,它可以正常工作并输出约 0.0167 的数字,而输出数字则低于约 6k 滴答/秒。

我的问题是我将主函数中的所有内容都转移到了一个方法中,现在得到了this result

似乎我错误地更改了某些内容,但我无法弄清楚我更改了什么。

【问题讨论】:

  • *这不是我在程序中使用的实际代码...* 请发布minimal reproducible example 否则它没有发生!
  • 输出也完全相同。这完全复制了这个问题。我的错没有足够澄清。

标签: c++ time clock timedelta delta


【解决方案1】:

你的printf错了,数据是float,但是printf格式是int。

【讨论】:

  • 谢谢,第一次用printf,不知道有什么具体的格式。
  • 你可能应该使用 c++ 流操作符,那么你就不用担心类型了,比如:std::cout &lt;&lt; passedTime.count() &lt;&lt; std::endl;
  • @SeanO'Hanlon - RTFM!
猜你喜欢
  • 2021-12-03
  • 2011-06-14
  • 2023-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多