Fazer um código aguardar por certo tempo é uma prática utilizada por diversos programadores.
O C++ dispões de múltiplas formas. Nesse artigo vamos ver algumas formas para Linux e também para Windows .
Vamos mostrar 5 exemplos em cada um deles para o código aguardar 2 segundos em alguns casos utilizando também em microssegundos e milisegundos .
unistd.h
Essa talvez seja a forma mais simples de todas, usando o cabeçalho #include <unistd.h>
#include <unistd.h>
int main(){
// 2 em segundos de sleep
sleep(2);
return 0;
}
Para mais informações rode o comando:
man 3 sleep
std::chrono
O std::chrono
é uma coleção flexível de tipos que controlam o tempo com vários graus de precisão . Para esse exemplo vamos utilizar a função: std::this_thread::sleep_for
, exemplo:
Informando o tempo em segundos:
#include <chrono>
#include <thread>
int main(){
// 2 em segundos de sleep
std::this_thread::sleep_for( std::chrono::seconds(2) );
return 0;
}
Informando o tempo de microssegundos
#include <chrono>
#include <thread>
int main(){
// 2 000 000 em MICROSEGUNDOS de sleep
// equivale a 2 segundos
std::this_thread::sleep_for( std::chrono::microseconds( 2000000 ) );
return 0;
}
Ainda é possível usar: minutes
, milliseconds
e entre outros.
Windows.h
Somente para Windows caso você queira criar soluções portáveis, seria assim mais ou menos:
#ifdef _WIN32
#define WINDOWS_SYSTEM
#include <Windows.h>
#else
#include <unistd.h>
#endif
int main(){
#ifdef WINDOWS_SYSTEM
Sleep( 2000000 );
#else
usleep( 2000000 );
#endif
return 0;
}
boost
A boost.org é uma coleção de bibliotecas úteis para C++ que torna seus códigos com mais portabilidade.
Verifique antes se possui ela instalada no seu sistema, apesar de eu achar difícil não possuir, pois muita coisa utiliza ela.
Para esse exemplo usamos boost::posix_time
:
#include <boost/thread.hpp>
int main(){
// Somados aguarda 2 segundos
// aguarda 1 segundo
boost::this_thread::sleep( boost::posix_time::seconds(1) );
// aguarda 1000 milisegundo = 1 segundo
boost::this_thread::sleep( boost::posix_time::milliseconds(1000) );
return 0;
}
Para compilar use as flags -lboost_thread
e -pthread
em conjunto, exemplo:
g++ -lboost_thread -pthread sleep.cpp
Por hoje é só, são pequenas doses diárias que farão sempre nos manter antenado com o C++ !
Então se inscreva nos nossos Cursos de C++ Moderno . Você aprender criar:
Acesse o endereço: