PB de saisie

cs_dangel Messages postés 8 Date d'inscription lundi 15 novembre 2004 Statut Membre Dernière intervention 1 mars 2005 - 16 nov. 2004 à 14:48
cs_dangel Messages postés 8 Date d'inscription lundi 15 novembre 2004 Statut Membre Dernière intervention 1 mars 2005 - 17 nov. 2004 à 15:49
Voilà
j'ai un prog en qui affiche un menu avec trois choix 1 , 2 et 3
j'effectue une vérification de saisie.
Quand je saisie un chiffre différent de 1 et 2 ou 3 la vérif fonctionne correctement mais si je saise une lettre il y a une boucle qui m'affiche "Vous avez mal saisie votre choix veuillez recommencer"

Voilà le code:

#include
#include <ctype>
using namespace std;
main ()
{
////// Déclaration des éléments//////

int choix;

////////////////////////////////////////////

///////Choix de paiment ///////////////
////////// borne ou télépéage ///////

cout << "Bonjour où voulez-vous vous diriger:\n";
cout << "1 - vers la borne pour un paiment par carte ou pièces\n";
cout << "2 - vers le télépéage\n";
cout << "ou autre pour sortir\n";

// Saisie du choix de l'automobiliste

cin >> choix;

// Vérification du choix
if (isalpha(choix) != 0)
{
choix = 0;
}
if (choix !=1 && choix !=2 ) /*Vérification du choix de fin*/
{
do{
cout <<"Vous avez mal saisi votre choix, veuillez recommencer:\n";
cin >> choix;
if (isalpha(choix) != 0)
{
choix = 0;
}

}

Comme vous pouvez le voir c'est pour programmer une borne d'autoroute.
Si vous avez une idée faitement part SVP

je programme avec Borlad et alors :-p

5 réponses

cs_dangel Messages postés 8 Date d'inscription lundi 15 novembre 2004 Statut Membre Dernière intervention 1 mars 2005
16 nov. 2004 à 14:50
désolé j'ai oublié la fin du prog :

while ((choix !=1 && choix !=2));
}

je programme avec Borlad et alors :-p
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
16 nov. 2004 à 23:04
tu fais quoi la ?
tu sais ce que fais isalpha ?

et char != int en c++
0
cs_dangel Messages postés 8 Date d'inscription lundi 15 novembre 2004 Statut Membre Dernière intervention 1 mars 2005
17 nov. 2004 à 13:47
Je comprend pas ce que tu veux me dire
Pour moi isalpha indique si la valeur de choix est une lettre ou non.
donc en if(isalpha(choix)!=0)
je teste si on a pas mi une lettre dans choix.
Vu ta réaction c'est pas ça alors si tu pouvais m'expliquer ce que ça fait ce serait sympa.

je programme avec Borlad et alors :-p
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
17 nov. 2004 à 14:02
choix doit etre de type char

isalpha est une fonction de la lib c mais en c char est un type entier, les conversions entre entier sont implicites

en c++ ce n'est plus le cas

dans ton programme tu peux pas utiliser choix comme un entier ou un caractere, il faut choisir
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_dangel Messages postés 8 Date d'inscription lundi 15 novembre 2004 Statut Membre Dernière intervention 1 mars 2005
17 nov. 2004 à 15:49
ok merci

je programme avec Borlad et alors :-p
0
Rejoignez-nous