如何在C ++中延迟输出?

时间:2014-11-30 16:55:30

标签: c++ output delay

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

4 个答案:

答案 0 :(得分:3)

这与平台有关。

在Windows上,您可以使用Sleep()功能:

Sleep(3000);

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

在兼容POSIX的情况下,您可以使用sleep():

sleep(3); // parameter is in seconds

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

usleep(3000000); // parameter is in microseconds

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

2个基本解决方案:

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

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

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

答案 3 :(得分:0)

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

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