time.h — Как рассчитать время в C ++?

Я пытаюсь выяснить, как рассчитать время в C ++. я делаю
программа, в которой каждые 3 секунды происходит событие, например, распечатка «привет» и т. д .;

1

Решение

Вот пример использования двух потоков, чтобы ваша программа не зависала и this_thread::sleep_for() в C ++ 11:

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

using namespace std;

void hello()
{
while(1)
{
cout << "Hello" << endl;
chrono::milliseconds duration( 3000 );
this_thread::sleep_for( duration );
}
}

int main()
{
//start the hello thread
thread help1(hello);
//do other stuff in the main thread
for(int i=0; i <10; i++)
{
cout << "Hello2" << endl;
chrono::milliseconds duration( 3000 );
this_thread::sleep_for( duration );
}
//wait for the other thread to finish in this case wait forever(while(1))
help1.join();
}
3

Другие решения

ты можешь использовать boost::timer рассчитать время в C ++:

using boost::timer::cpu_timer;
using boost::timer::cpu_times;
using boost::timer::nanosecond_type;
...
nanosecond_type const three_seconds(3 * 1000000000LL);

cpu_timer timer;cpu_times const elapsed_times(timer.elapsed());
nanosecond_type const elapsed(elapsed_times.system + elapsed_times.user);
if (elapsed >= three_seconds)
{
//more then 3 seconds elapsed
}
1

Это зависит от вашей ОС / компилятора.

Случай 1:
Если у вас есть C ++ 11, то вы можете использовать как предложено Крисом:
std :: this_thread :: sleep_for () // Вы должны включить поток заголовочных файлов

Случай 2:
Если вы находитесь на платформе Windows, вы также можете использовать что-то вроде:

#include windows.h
int main ()
{
event 1;
Sleep(1000); // number is in milliseconds 1Sec = 1000 MiliSeconds
event 2;
return 0;
}

Случай 3:
На платформе Linux вы можете просто использовать:
сон (в секундах);

0
По вопросам рекламы [email protected]