[C] Retour au début du programme

Signaler
Messages postés
23
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
30 septembre 2009
-
Messages postés
3819
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
28 septembre 2020
-
Bonsoir,
Je cherche après chaque execution revenir au début du programme.
Comment je peut faire s'il vous plaît ?

Voilà ma source :
#include <stdio.h>
#include <stdlib.h>

int menu()
{
int choix = 0;
while (choix < 1 || choix > 4)
{
printf(" Menu :\n");
printf("  1 : Option 1;\n");
printf("  2 : Option 2;\n");
printf("  3 : Option 3;\n");
printf("  4 : Exit\n");
printf("\n   Selectionnez une action.");
printf("\n\n                     | ==> ");
scanf("%d", &choix);
}
return choix;
}

int main(int argc, char *argv[])
{
switch (menu())
{
case 1:
printf("                     | Patientez...");
break;

case 2:
            printf("                     | Patientez...");
break;

case 3:
            printf("                     | Patientez...");
break;

case 4:
            printf("     Appuyer sur une touche pour quitter.");
system ("exit");
break;
}
return menu;
}


Merci d'avance !! :D

3 réponses

Messages postés
3819
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
28 septembre 2020
113
Ce n'est pas une bonne habitude à prendre que de faire des goto ! Ce mot clé est très utile dans des cas très particuliers, une utilisation à outrance est à proscrire. D'une manière générale, ce n'est pas bon de le montrer aux débutants, qui en font un usage abusif.

La deuxième solution est plus adaptée:

int main(int argc, char *argv[])
{
   int continuer = true;
   while (continuer)
   {
switch (menu())
{
case 1:
printf("                     | patientez...");
break;

case 2:
            printf("                     | patientez...");
break;

case 3:
            printf("                     | patientez...");
break;

case 4:
            printf("     appuyer sur une touche pour quitter.");
continuer = false;
break;
}
     return 0;
}
Messages postés
3819
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
28 septembre 2020
113
Ah pardon c'est du C. Remplacer true par 1 et false par 0.
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
1
Salut,

Tu as deux solutions:
- utiliser un goto
- mettre le corps de ton main dans une boucle infini

Shell