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
| 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;
} |