Boucle infinie

Messages postés
8
Date d'inscription
mardi 10 janvier 2006
Statut
Membre
Dernière intervention
27 mars 2007
- - Dernière réponse : 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
Afficher la suite 

3 réponses

Messages postés
759
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011
0
Merci
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));
Commenter la réponse de wxccxw
Messages postés
98
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
24 janvier 2018
0
Merci
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.
Commenter la réponse de zaibacker
Messages postés
121
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
27 juillet 2006
0
Merci
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;
Commenter la réponse de addamsmercredi