Vérification d'entrée utilisateur [C++] - C++ - Programmation
Marsh Posté le 06-12-2003 à 17:33:20
ce qui ne ferait pas planter le programme
en règle général, de simple
if(cin >> i) suffisent
poru la deuxième fois
Code :
|
tu fais ça à la sauce template et tu peux lire ce que tu veux
Marsh Posté le 06-12-2003 à 17:51:11
Merci de vos réponses,
le cin.bad() n'a pas l'air de bien marcher
ca marche comme ceci
Code :
|
Mais je trouve pas ca génial
Marsh Posté le 06-12-2003 à 17:58:34
tu te fiches de qui ? un char *, un dépassement de capacité, l'obsolète et non-fonctionnel atoi ?
je crois que tu ferais bien d'examiner mon code un peu plus en détail quittte à te documenter sur les fonctions membres
Marsh Posté le 06-12-2003 à 18:10:27
Je fais ca
Code :
|
Et je rentre des lettes et non des chiffres, et il ne pretend pas s'arreter
Marsh Posté le 06-12-2003 à 18:28:48
Taz a écrit : tu te fiches de qui ? un char *, un dépassement de capacité, l'obsolète et non-fonctionnel atoi ? |
avec ce morceau de code, tant qu'il a pas réussi à extraire un int, il lira ligne après ligne
Marsh Posté le 06-12-2003 à 18:43:22
Code :
|
Voilà ce que je teste, je voudrais que si l'utilsateur rentre un autre inférieur à deux, il lui redemande un chiffre, si l'utilisateur rentre autre chose que des choses, qu'il lui redemande le nombre de joueur.
Là qd le nb de joueurs est correcte et en chiffre ca passe, mais si je rentre des lettres c'est mort
merci
Marsh Posté le 06-12-2003 à 18:45:20
et ben tu reprends mes codes d'avant et tu transformes
if( is >> nbJoueurs )
{
break;
}
en
if( is >> nbJoueurs && nbJoueurs < 2)
{
// par ici la sortie, on a une donnée correcte
break;
}
Marsh Posté le 06-12-2003 à 19:00:19
merci
Je viens de faire comme ca
Code :
|
et ca marche bien maintenant je dois vérifier s'il ne depasse pas la capacité d'un int aussi
Marsh Posté le 06-12-2003 à 19:11:19
c'est mauvais. le booléen est inutile, tu ne gères aucune erreur
Code :
|
c'est pourtant pas compliqué !
je montre 2 techniques et les deux sont sures et garantissent que si une erreur se produit, elle sera détectée.
mais par pitié vire ce pauvre booléen qui perd d'ailleurs toute ca cridibilité avec le while(inOk==false)
si tu veux gérer les E/S suit ma méthode, sinon ça ne sert à rien. soit on gère les erreurs, soit on ne gère pas. ton programme, il peut ce mettre à boucler indéfininment sans que tu comprennes pourquoi
edit : la méthode avec les stringstream étant moins bonne puisqu'on mémorise tous les caractères dont justement on n'a cure
Marsh Posté le 06-12-2003 à 17:30:27
Bonjour,
J'ai un projet en C++ mode console à faire pour mes cours C'est une simulation d'une bataille (jeu de carte, avec x joueurs, x paquets de cartes et etc)
J'ai fini ce projet, mais je dois vérifier les entrées utilisateurs. l'utilisateur doit entrée le nombre de joueur, donc un int, mais je voudrais vérifier s'il ne rentre pas des caractéres à la place, (ce qui ferait planter le programme).
Merci
---------------
Mon Blog : LeVeilleur.net | Hébergement d'images : Hostipics.net