collègues! J'ai essayé d'utiliser la fonction sleep()
dans mon code avec la fonction system()
. Le code est censé afficher le premier message, puis compter à rebours, à chaque fois imprimer le nombre de secondes restantes et attendre 1 seconde. Ensuite, l'écran devrait être effacé. Je veux faire juste une simple animation de texte. Mais le programme ne fonctionne pas comme prévu! J'ai vérifié mon code et il semble que je n'ai aucune syntaxe ou erreur logique. Lorsque je compile et exécute ce code, il attend d'abord cinq secondes, puis imprime le message sur stdout sans même attendre et efface immédiatement l'écran. Je pense que c'est une erreur d'exécution, bien que cela ne devrait pas se produire logiquement. Si les informations suivantes sont pertinentes, je compile et exécute mes programmes C++ à partir du terminal Linux.Fonction C++ sleep() ne fonctionne pas comme prévu
#include <iostream>
#include <cstdlib> // includes system();
#include <unistd.h> // includes sleep();
using std::cout;
using std::cin;
using std::endl;
int main() {
cout << "Clearing the screen in: ";
for (int i = 5; i > 0; i--) {
cout << i << " ";
sleep(1); // takes seconds
}
system("clear");
return 0;
}