Windows
在 Windows 平台上,通常使用 Sleep
函数来实现睡眠功能。
- 包含的头文件:
<windows.h>
- 函数原型:
void Sleep(DWORD dwMilliseconds);
- 示例:
#include <windows.h>
int main() {
Sleep(3000); // 睡眠 3 秒钟
return 0;
}
Unix/Linux(包括 macOS)
在 Unix/Linux 平台上,有 sleep
和 usleep
函数可用。
sleep
函数:- 包含的头文件:
<unistd.h>
- 函数原型:
unsigned int sleep(unsigned int seconds);
- 示例:
- 包含的头文件:
#include <unistd.h>
int main() {
sleep(3); // 睡眠 3 秒钟
return 0;
}
usleep
函数:- 包含的头文件:
<unistd.h>
- 函数原型:
int usleep(useconds_t usec);
,其中参数为微秒。 - 示例:
- 包含的头文件:
#include <unistd.h>
int main() {
usleep(3000000); // 睡眠 3 秒钟(3000000 微秒)
return 0;
}
需要注意的是,不同的操作系统和编译器对这些函数的实现可能会有一些细微的差异,但总体功能和用法是相似的。在实际使用时,还需要根据具体的平台和需求来选择合适的函数,并注意参数的单位和范围。
<chrono>
标准库
在 <chrono>
标准库中,C++ 提供了 std::this_thread::sleep_for
函数来实现睡眠功能。
#include <iostream>
#include <chrono>
#include <thread>
int main() {
std::cout << "Before sleep" << std::endl;
// 睡眠 3 秒钟
std::this_thread::sleep_for(std::chrono::seconds(3));
std::cout << "After sleep" << std::endl;
return 0;
}
在上述代码中,std::this_thread::sleep_for
接受一个 std::chrono::duration
对象作为参数,指定要睡眠的时间间隔。