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 ?  | 
![[:quoted] [:quoted]](https://forum-images.hardware.fr/images/perso/quoted.gif) avec ce morceau de code, tant qu'il a pas réussi à extraire un int, il lira ligne après ligne
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
 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,
 C'est une simulation d'une bataille (jeu de carte, avec x joueurs, x paquets de cartes et etc)
 C'est une simulation d'une bataille (jeu de carte, avec x joueurs, x paquets de cartes et etc) 

J'ai un projet en C++ mode console à faire pour mes cours
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