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