C++ probleme de boucle infini
val
-
cap'tain sheeps Messages postés 447 Date d'inscription Statut Membre Dernière intervention -
cap'tain sheeps Messages postés 447 Date d'inscription Statut Membre Dernière intervention -
Bonjour a tous,
Je dois programmer un vérificateur d'adresse mail j'ai un problème de boucle infini dans le int main () de mon programme:
int main ()
{
while (sortie !=0)
{
cout<<"veuillez indiquer votre adresse email"<<endl;
cin>>adresse;
cout<<adresse<<endl;
strlwr (adresse);
while (bool_erreur==0)
{
controle_caractere_1 (adresse);
if (bool_erreur==1)
break;
controle_point (adresse, strlen(adresse));
if (bool_erreur==1)
break;
prog_arobase ();
if (bool_erreur==1)
break;
extracteur (0,arobase,adresse,part1);
if (bool_erreur==1)
break;
controle_caractere (part1,strlen(part1));
if (bool_erreur==1)
break;
extracteur (arobase+1,strlen(adresse),adresse,part2);
if (bool_erreur==1)
break;
controle_caractere (part2, strlen(part2));
if (bool_erreur==1)
break;
prog_point(part2);
if (bool_erreur==1)
break;
place_point (part2);
if (bool_erreur==1)
break;
extracteur (plce_point+1,strlen(part2),part2,part3);
controleur_part3 (part3);
if (bool_erreur==1)
break;
cout<<"votre adresse est valide"<<endl;
break;
}
bool_erreur = 0;
cout<<"pour sortir du programme taper sur 0"<<endl;
cin>>sortie;
cout<<endl;
}
system ("pause");
}
Je n'arrive pas a voir a quelle moment j'ai un probleme dans mes boucles, merci pour votre aide!!
Je dois programmer un vérificateur d'adresse mail j'ai un problème de boucle infini dans le int main () de mon programme:
int main ()
{
while (sortie !=0)
{
cout<<"veuillez indiquer votre adresse email"<<endl;
cin>>adresse;
cout<<adresse<<endl;
strlwr (adresse);
while (bool_erreur==0)
{
controle_caractere_1 (adresse);
if (bool_erreur==1)
break;
controle_point (adresse, strlen(adresse));
if (bool_erreur==1)
break;
prog_arobase ();
if (bool_erreur==1)
break;
extracteur (0,arobase,adresse,part1);
if (bool_erreur==1)
break;
controle_caractere (part1,strlen(part1));
if (bool_erreur==1)
break;
extracteur (arobase+1,strlen(adresse),adresse,part2);
if (bool_erreur==1)
break;
controle_caractere (part2, strlen(part2));
if (bool_erreur==1)
break;
prog_point(part2);
if (bool_erreur==1)
break;
place_point (part2);
if (bool_erreur==1)
break;
extracteur (plce_point+1,strlen(part2),part2,part3);
controleur_part3 (part3);
if (bool_erreur==1)
break;
cout<<"votre adresse est valide"<<endl;
break;
}
bool_erreur = 0;
cout<<"pour sortir du programme taper sur 0"<<endl;
cin>>sortie;
cout<<endl;
}
system ("pause");
}
Je n'arrive pas a voir a quelle moment j'ai un probleme dans mes boucles, merci pour votre aide!!
A voir également:
- C++ probleme de boucle infini
- Signe infini clavier - Forum MacOS
- Affichage du signe infini ✓ - Forum Bureautique
- Signe infini - Forum Bureautique
- Logitech g hub chargement infini - Forum Logiciels
- Arret en cours infini ✓ - Forum Windows 8 / 8.1
2 réponses
Salut,
En effet, il est bizarre ton code:
Déjà il n'y a pas de break pour les conditions if. Si tu veux renvoyer une erreur en cas de mauvais fonctionnement:
controle_caractere_1 (adresse);
if (bool_erreur==1)
throw logic_error // où autre type d'erreur ça dépend de ce que ta fonction retourne comme type d'erreur... Sinon tu peux aussi ne rien mettre.
else
//suite du programme si tout se passe bien:
controle_point (adresse, strlen(adresse));
etc.
Autre chose, si il n'y a pas d'erreur, cad si ta variable bool_erreur reste à 0, ca entrainera une boucle infinie.
En fait je comprend pas trop pourquoi tu fais 2 boucles. Ton seul marqueur de fin est quand l'utilisateur rentre 0 ou je me trompe?
Sheeps.
Randy Orton a une meilleure vie que toi !
D-D-D-D-DDDdddarck C-C-Combo ULTRA Kick Retourné flamboyant de maitre kin-chu-han
En effet, il est bizarre ton code:
Déjà il n'y a pas de break pour les conditions if. Si tu veux renvoyer une erreur en cas de mauvais fonctionnement:
controle_caractere_1 (adresse);
if (bool_erreur==1)
throw logic_error // où autre type d'erreur ça dépend de ce que ta fonction retourne comme type d'erreur... Sinon tu peux aussi ne rien mettre.
else
//suite du programme si tout se passe bien:
controle_point (adresse, strlen(adresse));
etc.
Autre chose, si il n'y a pas d'erreur, cad si ta variable bool_erreur reste à 0, ca entrainera une boucle infinie.
En fait je comprend pas trop pourquoi tu fais 2 boucles. Ton seul marqueur de fin est quand l'utilisateur rentre 0 ou je me trompe?
Sheeps.
Randy Orton a une meilleure vie que toi !
D-D-D-D-DDDdddarck C-C-Combo ULTRA Kick Retourné flamboyant de maitre kin-chu-han
En gros c'est ça que tu veux faire? :
int main () { while (sortie !=0) { cout<<"veuillez indiquer votre adresse email"<<endl; cin>>adresse; cout<<adresse<<endl; strlwr (adresse); controle_caractere_1 (adresse); if (bool_erreur==1){//récupération erreur } else controle_point (adresse, strlen(adresse)); if (bool_erreur==1){//récupération erreur } else prog_arobase (); if (bool_erreur==1){//récupération erreur } else extracteur (0,arobase,adresse,part1); if (bool_erreur==1){//récupération erreur } else controle_caractere (part1,strlen(part1)); if (bool_erreur==1){//récupération erreur } else extracteur (arobase+1,strlen(adresse),adresse,part2); if (bool_erreur==1){//récupération erreur } else controle_caractere (part2, strlen(part2)); if (bool_erreur==1){//récupération erreur } else prog_point(part2); if (bool_erreur==1){//récupération erreur } else place_point (part2); if (bool_erreur==1){//récupération erreur } else { extracteur (plce_point+1,strlen(part2),part2,part3); controleur_part3 (part3); } if (bool_erreur==1){//récupération erreur } else cout<<"votre adresse est valide"<<endl; bool_erreur = 0; cout<<"pour sortir du programme taper sur 0 sinon tape ce que tu veux mais pas 0"<<endl; cin>>sortie; cout<<endl; } system ("pause"); }