C++ probleme de boucle infini
val
-
cap'tain sheeps Messages postés 491 Statut Membre -
cap'tain sheeps Messages postés 491 Statut Membre -
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
- Utiliser ticket kadéos infini sur internet ✓ - Forum Consommation & Internet
- Symbole infini clavier - Guide
- Kadeos infini amazon - Forum Consommation & Internet
- Logitech g hub chargement infini - Forum Logiciels
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
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");
}