Bonjour ceci est un problème avec un code de la FAQ et le fait de vouloir faire une pause ensuite.
Je voudrais savoir s'il est possible de faire ce que je veux sans rajouter un 2ème cin.ignore().
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 #include <iostream> #include <limits> using namespace std; bool read_choice( int & N ) { cout << "Entrez un chiffre entre 1 et 6 : " ; while ( ! ( cin >> N ) || N < 1 || N > 6 ) { if ( cin.eof() ) { // ^D (^Z sous windows); Fin du flux d'entree! return false; } else if ( cin.fail() ) { cout << "Saisie incorrecte, recommencez : "; cin.clear(); cin.ignore( numeric_limits<streamsize>::max(), '\n' ); } else { cout << "Le chiffre n'est pas entre 1 et 6, recommencez : "; } } return true; // succès } int main () { int choix; if ( read_choice( choix ) ) { cout << "Vous avez choisi : " << choix << '\n'; } cout << "Appuyez sur entree pour continuer...\n"; cin.ignore( numeric_limits<streamsize>::max(), '\n' ); // cin.ignore( numeric_limits<streamsize>::max(), '\n' ); obligé de le mettre une autre fois car on a appuyé sur entrée return 0; }
Je pourrais mettre getchar() pour recuperer le '\n' en trop mais je voudrais savoir s'il y a une méthode plus élégante.
Merci d'avance.
Partager