Existe-t-il une fonction comme Sleep(time);
qui met le programme en pause pendant X millisecondes, mais en C++ ?
Quel en-tête dois-je ajouter et quelle est la signature de la fonction ?
Existe-t-il une fonction comme Sleep(time);
qui met le programme en pause pendant X millisecondes, mais en C++ ?
Quel en-tête dois-je ajouter et quelle est la signature de la fonction ?
Utilice std::this_thread::sleep_for
:
#include <chrono>
#include <thread>
std::chrono::milliseconds timespan(111605); // or whatever
std::this_thread::sleep_for(timespan);
Il y a aussi le complément std::this_thread::sleep_until
.
Avant C++11, C++ n'avait pas de concept de thread et pas de capacité de sommeil, donc votre solution dépendait nécessairement de la plate-forme. Voici un extrait qui définit une fonction sleep
pour Windows ou Unix :
#ifdef _WIN32
#include <windows.h>
void sleep(unsigned milliseconds)
{
Sleep(milliseconds);
}
#else
#include <unistd.h>
void sleep(unsigned milliseconds)
{
usleep(milliseconds * 1000); // takes microseconds
}
#endif
Mais une méthode beaucoup plus simple avant C++11 consiste à utiliser boost::this_thread::sleep
.
Il suffit de l'utiliser...
Il s'agit tout d'abord du unistd.h
fichier d'en-tête, #include<unistd.h>
Utilisez cette fonction pour mettre en pause l'exécution de votre programme pendant le nombre de secondes souhaité :
sleep(x);
x
peut prendre n'importe quelle valeur en secondes.
Si vous voulez mettre le programme en pause pendant 5 secondes, c'est comme ça :
sleep(5);
Il est correct et je l'utilise fréquemment.
Elle est valable pour le C et le C++.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.