C ++中的控制台程序[重复]

Posted

技术标签:

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

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

import timer

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

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

【问题讨论】:

sleep for milliseconds 或 ***.com/questions/3379139/… 或 ***.com/questions/2252372/… 的可能重复项 由于某种原因,当我使用睡眠功能时, sleep(x 毫秒) 它说,该功能无法识别。我必须首先包含一个特定的流才能使用睡眠功能吗? ***.com/questions/1658386/sleep-function-in-c 已经有人讨论过这个话题了。 en.cppreference.com/w/cpp/thread/sleep_for 我在任何名为 timer 的 Python 模块中都找不到 sleep 函数;你在说哪个模块?这个问题真的是关于在一定时间内显示文本吗?时间过去后,Python 模块是否真的 remove 打印到控制台的任何内容?还是你真的在问如何延迟执行你的程序一段时间,显示的文字完全不相关? 【参考方案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 的函数,并将其乘以一千(毫秒到秒的等效数),然后基于该变量运行睡眠函数。这样一来,人们就可以轻松地定义他们希望函数运行多少秒,而不是以毫秒为单位计算出来。

以上是关于C ++中的控制台程序[重复]的主要内容,如果未能解决你的问题,请参考以下文章

我有一个托管DLL和C#中的托管程序 - 我希望托管DLL在程序集内部而不是外部[重复]

cmd malbehaviour中的c ++程序执行[重复]

运行c ++程序时vc ++中的致命错误[重复]

当用户不点击通知警报时如何获取通知数据只需使用obj c点击ios中的应用程序[重复]

求大神,c语言大神,一段程序说的啥意思,全局变量等于0怎么循环下面的

JAVA程序设计-简单的学生信息管理系统