【问题标题】:fatal error: 'windows.h' file not found #include<windows.h> //for sleep [closed]致命错误:找不到'windows.h'文件#include<windows.h> //用于睡眠[关闭]
【发布时间】:2021-08-16 17:43:55
【问题描述】:

这对于 macOS 有什么替代品?我正在制作疫苗管理系统,现在这是我面临的问题。

【问题讨论】:

标签: c++ macos include


【解决方案1】:

您应该使用标准 C++ 库中提供的函数,而不是使用依赖于平台的函数来使线程进入睡眠状态。

C++ 提供std::this_thread::sleep_for() 函数让线程进入睡眠状态。

请查看此处取自CppReference page的示例:

#include <iostream>
#include <chrono>
#include <thread>
int main()
{
     using namespace std::chrono_literals;
     std::cout << "Hello waiter\n" << std::flush; auto start = std::chrono::high_resolution_clock::now();
     std::this_thread::sleep_for(2000ms);
     auto end = std::chrono::high_resolution_clock::now();
     std::chrono::duration<double, std::milli> elapsed = end-start;
     std::cout << "Waited " << elapsed.count() << " ms\n";
}

【讨论】:

  • Looks like we might have to update that cppreference docs page. 如果high_resolution_clocksystem_clock 的别名,那么计时结果可能会非常错误。
  • high_resolution_clock 对于测量持续时间不可靠。尽管它的名字听起来令人印象深刻,但总的来说它非常不可靠。此处应使用steady_clock
猜你喜欢
  • 2020-06-07
  • 1970-01-01
  • 1970-01-01
  • 2016-08-23
  • 2010-12-27
  • 1970-01-01
  • 1970-01-01
  • 2010-09-17
  • 2014-04-29
相关资源
最近更新 更多