Comment mettre en pause un programme en C++
-
Utilisez la fonction
getc()
pour mettre le programme en pause -
Utilisez la méthode
std::cin::get()
pour mettre le programme en pause -
Utilisez la fonction
getchar()
pour mettre le programme en pause
Cet article explique plusieurs méthodes pour mettre en pause un programme en C++.
Utilisez la fonction getc()
pour mettre le programme en pause
La fonction getc()
provient de la bibliothèque d’entrée-sortie standard du C, et elle lit le caractère suivant du flux d’entrée donné. Le flux d’entrée est de type FILE*
, et la fonction s’attend à ce que le flux soit ouvert. Sur presque tous les systèmes Unix, lors du démarrage du programme, 3 flux de fichiers standard sont ouverts - à savoir stdin, stdout et stderr. Dans l’exemple suivant, nous passons stdin
en argument, qui correspond à une entrée de la console, pour attendre qu’un utilisateur continue l’exécution du programme.
#include <chrono>
#include <iostream>
#include <thread>
using std::copy;
using std::cout;
using std::endl;
using std::this_thread::sleep_for;
using namespace std::chrono_literals;
int main() {
int flag;
cout << "Program is paused !\n"
<< "Press Enter to continue\n";
// pause the program until user input
flag = getc(stdin);
cout << "\nContinuing .";
sleep_for(300ms);
cout << ".";
cout << ".";
cout << ".";
cout << "\nProgram finished with success code!";
return EXIT_SUCCESS;
}
Production:
Program is paused !
Press Enter to continue
Continuing ....
Program finished with success code!
Utilisez la méthode std::cin::get()
pour mettre le programme en pause
Une autre méthode pour mettre un programme en pause est d’appeler la méthode intégrée std::cin
get
, qui extrait les caractères du flux d’entrée comme spécifié par des paramètres. Dans ce cas, on se contente de lire un seul caractère et de renvoyer le contrôle au programme en cours d’exécution.
#include <chrono>
#include <iostream>
#include <thread>
#include <vector>
using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::vector;
using std::this_thread::sleep_for;
using namespace std::chrono_literals;
int main() {
int flag;
cout << "Program is paused !\n"
<< "Press Enter to continue\n";
// pause the program until user input
flag = cin.get();
cout << "\nContinuing .";
sleep_for(300ms);
cout << ".";
cout << ".";
cout << ".";
cout << "\nProgram finished with success code!";
return EXIT_SUCCESS;
}
Utilisez la fonction getchar()
pour mettre le programme en pause
On peut aussi réimplémenter la même fonctionnalité avec l’appel de fonction getchar
. getchar
est l’équivalent de getc(stdin)
, qui lit le caractère suivant du flux d’entrée de la console.
Notez que les deux fonctions peuvent renvoyer EOF
, indiquant que la fin du fichier a été atteinte, c’est-à-dire qu’aucun caractère n’est disponible pour la lecture. Le programmeur est responsable du traitement de tout flux de contrôle exceptionnel et des codes d’erreur renvoyés.
#include <chrono>
#include <iostream>
#include <thread>
#include <vector>
using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::vector;
using std::this_thread::sleep_for;
using namespace std::chrono_literals;
int main() {
int flag;
cout << "Program is paused !\n"
<< "Press Enter to continue\n";
// pause the program until user input
flag = getchar();
cout << "\nContinuing .";
sleep_for(300ms);
cout << ".";
cout << ".";
cout << ".";
cout << "\nProgram finished with success code!";
return EXIT_SUCCESS;
}
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook