Boucle infinie

Signaler
Messages postés
8
Date d'inscription
mardi 10 janvier 2006
Statut
Membre
Dernière intervention
27 mars 2007
-
Messages postés
121
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
27 juillet 2006
-
J'ai un problème de boucle qui tourne indéfiniment lorsque l'untilisateur tape un caractère à la place d'un chiffre avec utilisation d'une boucle conditionnelle do...while() , ma condition étant fixée sur un entier de type int

3 réponses

Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011

tu test si ta string contient un caratere au lieu d'un int.
tu fais une fonction

bool IsInt(int i)
{
if i est int
return true;
}

do while(IsInt(int i));
Messages postés
98
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
24 janvier 2018

Le probleme peut venir de plusieurs endroits ,tu ne donnes pass assez d'elements , mais à mon avis cest ta condition de sortie qui est fausse. Sinon je suppose que tu as utilise un scanf("%d",&a) et non pas un getch() ou un scanf("%c",&a) car dans ce cas faut tester les codes ascii.
Messages postés
121
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
27 juillet 2006

Il faut ignorer les caractères qui ne vont pas comme ceci :


int entier;
cout << "Saisissez un entier :" << endl;
while (!(cin >> entier))
{
cin.clear();
cin.ignore();
}
cout << "L'entier saisi est : " << entier << endl;