| 12
 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
 
 | size_t affichage(Question const & question)
{
    std::cout<<question.intitule<<std::endl,
    /* affichons les choix possibles */
    for(size_t i = 0;i<question.choix.size();++i)
        std::cout<< i<<"- "<<question.choix[i]<<std::endl;
    std::cout<<std::endl<<"votre choix : ";
    size_t choix = question.choix.size();
    /* il faut que le choix soit valide (l'utilisateur est par défaut un
     * imbécile distrait, il peut vouloir introduire 999 ou 5 alors que 
     * tu n'as que 3 choix ;))
     */
    while(choix>= question.choix.size())
    {
        std::cout<<std::endl<<"votre choix : ";
        /* nous refusons tout ce qui n'est pas une entrée numérique 
         * car l'utiliisateur, qui est toujours un imbécile distrait,
         * pourrait vouloir introduire "salut"
         */
        while(! (cin>>choix) )
        {
            cin.clear();
            cin.ignore( numeric_limits<streamsize>::max(), '\n' );
        }
        /* si la valeur ne correspond pas à un choix valide, nous tapons
         * sur les doigts de l'utilisateur
         */
        if(choix>= question.choix.size())
            std::cout<<"veuillez entrer un choix entre 0 et "
                     <<question.choix.size()-1<<std::end;
    }
    /* le choix est validé (non vérifié, ce n'est pas le but de la fonction)
     * nous pouvons le renvoyer ;)
     */
    return choix;
} |