gpt4 book ai didi

c++ - Sleep() 没有给出准确的时间表示

转载 作者:行者123 更新时间:2023-11-27 22:54:36 25 4
gpt4 key购买 nike

我创建了一个简单的定时器程序如下。

#include <conio.h>
#include <windows.h>
#include <iostream>
int main()
{
float counter = 0;
float time = 0;
std::cin >> time;
while (true){
system("cls");
std::cout << time - counter;
Sleep(10);
counter+= .01;
if (time - counter < 0) break;
}
}

如您所见,我没有使用 Clock(),而是使用了 Sleep()。当我有一个不太精确的计数器 (Sleep(1000); counter += 1;) 时,与实时的差异不大(如果有的话)。然而,我创建的倒计时越精确,它就越远离实时。

  1. 为什么会这样?
  2. 如果您知道是否有解决方法?不过没什么大不了的,因为 Clock() 工作正常。这主要是一个好奇心驱动的问题。

最佳答案

其他事情在循环中发生——这需要时间。 sleep 也至少需要那段时间 - 但可能需要更多时间。

使用 sleep 但使用时钟调整时间以考虑这些因素。

关于c++ - Sleep() 没有给出准确的时间表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34418256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com