【问题标题】:How to delay output in C++?如何在 C++ 中延迟输出?
【发布时间】:2014-11-30 16:55:30
【问题描述】:

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

【问题讨论】:

    标签: c++ output delay


    【解决方案1】:

    这取决于平台。

    在 Windows 上,您可以使用Sleep() 函数:

    Sleep(3000);
    

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

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

    sleep(3); // parameter is in seconds
    

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

    usleep(3000000); // parameter is in microseconds
    

    这两个函数都需要包含 unistd.h

    【讨论】:

    • 这真的是 C++ 答案吗?哪个 C++ 标头包含这些函数?
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      2个基本解决方案:

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

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

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

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 2016-02-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多