我最近在搞乱 C++ 控制台编程。我想知道是否有一种方法可以让文本在控制台上显示一段特定的时间,然后再查看更多文本。本质上,我正在尝试创建一个计时器对象。或者,如果您熟悉 python,则类似于
import timer
print "Hello World"
timer.sleep(2)
print "Hello Again World"
timer.sleep(2)
如果有人可以帮助我,我将不胜感激,在此先感谢。
我最近在搞乱 C++ 控制台编程。我想知道是否有一种方法可以让文本在控制台上显示一段特定的时间,然后再查看更多文本。本质上,我正在尝试创建一个计时器对象。或者,如果您熟悉 python,则类似于
import timer
print "Hello World"
timer.sleep(2)
print "Hello Again World"
timer.sleep(2)
如果有人可以帮助我,我将不胜感激,在此先感谢。
在 C++11 之前,没有标准的方法可以做到这一点,要么使用系统库,要么使用为您包装系统库的跨平台库。在 C++ 11 中,它需要线程和 chrono 库来完成它。
#include <iostream>
#include <chrono>
#include <thread>
int main()
{
std::cout << "Hello world" << std::endl;
std::chrono::milliseconds twoSeconds( 2000 );
std::this_thread::sleep_for( twoSeconds);
std::cout << "Hello Again World" << std::endl;
}
没有内置的 C++ 功能,您必须求助于特定于平台的功能。
在 POSIX 系统(Linux、Mac OS X、BSD 等)上,您可以使用sleep
from <unistd.h>
(用于第二分辨率的延迟)或nanosleep
from <time.h>
(标称分辨率为纳秒,但在实践中更糟糕)。相反,在 Windows 上,您可以使用Sleep
API <windows.h>
(标称分辨率为毫秒)。
- -编辑 - -
如评论中所述,在 C++11 中有std::this_thread::sleep_for
.