Boucle infinie

Masshysteria63 Messages postés 8 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 27 mars 2007 - 21 févr. 2006 à 13:36
addamsmercredi Messages postés 121 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 27 juillet 2006 - 21 févr. 2006 à 14:39
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

wxccxw Messages postés 755 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 30 janvier 2011
21 févr. 2006 à 13:45
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));
0
zaibacker Messages postés 97 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 24 janvier 2018
21 févr. 2006 à 13:46
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.
0
addamsmercredi Messages postés 121 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 27 juillet 2006
21 févr. 2006 à 14:39
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;
0
Rejoignez-nous