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