在c ++中将输出屏幕冻结一段时间

时间:2017-02-01 12:16:20

标签: c++

我一直试图用c ++制作蛇游戏。在使蛇移动的过程中,我希望将蛇冻结到其位置1秒钟然后打印新位置。 我为此做了以下功能:

var json = JSON.parse('{"eventName":"Hilton Hotel","photographer_name":["Ethan Richardson"],"image_url":"https://s-media-cache-ak0.pinimg.com/originals/a0/b8/b6/a0b8b6b2e9b077a8ac7791455f83a27b.jpg","subtitle":"Enjoy the night","result":"1"}');
var variable = json.photographer_name[0];

但是在执行此功能时,我之前的输出不会停留。输出的一部分被删除。这是我控制所有功能的主要功能:

void wait_time(int wait_t){
        time_t curr=time(NULL);
        time_t nav_t=time(NULL);
        while(1){
            if (nav_t-curr==wait_t) {
                break;
            }
            else{
                nav_t=time(NULL);
            }
        }
}

3 个答案:

答案 0 :(得分:2)

使用C ++ 11,您可以使用std::this_thread::sleep_for暂停执行一段时间。

链接页面包含以下示例:

#include <iostream>
#include <chrono>
#include <thread>

int main()
{
    // using namespace std::chrono_literals; // C++14
    std::cout << "Hello waiter" << std::endl;
    auto start = std::chrono::high_resolution_clock::now();
    std::this_thread::sleep_for(std::chrono::seconds(2)); // C++11
    // std::this_thread::sleep_for(2s); // C++14
    auto end = std::chrono::high_resolution_clock::now();
    std::chrono::duration<double, std::milli> elapsed = end-start;
    std::cout << "Waited " << elapsed.count() << " ms\n";
}

答案 1 :(得分:1)

使用标准库:

std::this_thread::sleep_for(2s);

2s是时间字面值,但您也可以执行类似

的操作
std::this_thread::sleep_for(std::chrono::seconds{2});

答案 2 :(得分:1)

第一种方式
$('body').append($compile("<my-angular-directive />")(scope)); scope.$apply(); 库和chrono

第二种方式
{2}具有2个功能的std::this_thread::sleep_for( your-time ) 一个用于等待另一个微秒

unistd.h

sleep( 1 );