如何在C++中延迟输出

How to delay output in C++?

本文关键字:延迟 输出 C++      更新时间:2023-10-16

我正在做一个需要从文件中读取数据的项目。
但是在打开文件之前,我想显示Loading . . . . . 我希望"加载"之后的点一个接一个地打印,每个点大约 2-3 秒后打印,然后我显示文件的内容。也就是说,在前 3 秒后显示Loading .显示,再过 3 秒后Loading . .显示,依此类推。我找不到办法,请帮忙。

这取决于平台。

在 Windows 上,您可以使用 Sleep() 函数:

Sleep(3000);

参数是以毫秒为单位的时间量。您需要包含 windows.h 才能使用此功能。

在 POSIX 兼容上,您可以使用 sleep():

sleep(3); // parameter is in seconds

如果你需要更好的精度,你可以使用 usleep():

usleep(3000000); // parameter is in microseconds

对于这两个函数,您需要包含 unistd.h

在 c++11 中,您可以创建一个在睡眠 3 秒上循环的线程,并在读取文件之前打印点。必须使用由互斥锁保护的条件或变量退出线程。

2 个

基本解决方案:

1 使用 usleep() 的 sleep() 来阻止它。2. 使用 while 循环让 CPU 忙于循环。

在生产中,我们通常做第一个解决方案。但要始终对此保持谨慎。确保这是您想要做的。

另一种方式是,使用事件循环方法并为此事件设置计时器。它可以在计时器超时后运行

在 C++11 中,您可以使用:

#include <chrono>
#include <thread>
...
using namespace std::chrono_literals;
...
std::this_thread::sleep_for(2s);