Bonjour ceci est un problème avec un code de la FAQ et le fait de vouloir faire une pause ensuite.
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 voudrais savoir s'il est possible de faire ce que je veux sans rajouter un 2ème cin.ignore().
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.