【问题标题】:Console Program in C++ [duplicate]C ++中的控制台程序[重复]
【发布时间】:2013-08-26 21:10:30
【问题描述】:

我最近在搞乱 C++ 控制台编程。我想知道是否有一种方法可以让文本在控制台上显示一段特定的时间,然后转到更多文本。本质上,我正在尝试创建一个计时器对象。或者,如果您熟悉 python,则类似于

import timer

print "Hello World"
timer.sleep(2)
print "Hello Again World"
timer.sleep(2)

如果有人能帮我解决这个问题,我将不胜感激,在此先感谢。

【问题讨论】:

标签: c++


【解决方案1】:

在 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;
}

【讨论】:

  • ...其中“跨平台库”代表boost
【解决方案2】:

没有内置的 C++ 功能,您必须求助于特定于平台的功能。

在 POSIX 系统(Linux、Mac OS X、BSD...)上,您可以使用 sleep 来自 &lt;unistd.h&gt;(用于延迟秒分辨率)或 nanosleep 来自 &lt;time.h&gt;(标称分辨率为纳秒,但在实践中更糟)。而在 Windows 上,您可以使用来自&lt;windows.h&gt;Sleep API(标称分辨率为毫秒)。

---编辑---

在 cmets 中指定,在 C++11 中有 std::this_thread::sleep_for

【讨论】:

  • C++11中有:std::this_thread::sleep_for.
  • 非常感谢,我最终像您所说的那样使用了 Windows 的 Sleep API。我还能够制作一个传递变量 s 的函数,并将其乘以一千(毫秒到秒的等效数),然后基于该变量运行睡眠函数。这样一来,人们就可以轻松地定义他们希望函数运行多少秒,而不是以毫秒为单位计算出来。
猜你喜欢
  • 1970-01-01
  • 2021-10-03
  • 2014-11-21
  • 1970-01-01
  • 1970-01-01
  • 2011-09-07
  • 1970-01-01
  • 2014-02-18
  • 2019-09-14
相关资源
最近更新 更多