Boucle avec case !? En C !?

Résolu
Bonjour,
Hey je voudrais savoir comment faire une boucle d'un programme juste demander qu'il fasse demi-tour enfin qu'il revienne au début à l'aide d'une question. J'ai essayeé la fonction case.... sa à du mal... enifn je la comprend pas trop et j'ai essayé avec switch par réusie et avec un If else je vois pas trop comment me débrouillée

//déclration de variable préalable au programme

Char rep;

//programme entré avant et condition de retour

printf("Voulez vous recommencez : Y-oui/N-non?")
scnaf("%c",&Y)
if (rep==Y)
{return 0}
else{ if(rep==N)
{getch()}
else{return à printf }

Sa pourrais marcher un truc comme sa !?

Merci d'avance.
Séb

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Salut,

    char rep[3];
    
    do{
       printf("Voulez-vous recommencer : Y/N");
       fgets(rep,3,stdin);
       while(rep[0]!='Y' && rep[0]!='N'){
          puts("reponse incorrecte");
          printf("reponse : Y ou N");
          fgets(rep,3,stdin);
       }
    }while(rep[0]!='N');
    
    
    1. Contributeur
      Salut,

      Ben tu affiches la phrase.
      Ensuite tu récupères la réponse de l'utilisateur. J'utilise fgets 3 pour stocker le caractère de l'utilisateur, le \n, et le \0, comme ça aucun caractère ne va dans le buffer tampon.
      Ensuite tant que sa réponse est différent de Y ou N, tu lui demandes de retaper une réponse.
      Et enfin si sa boucle et Y, tu retournes à la première phrase.

      J'espère avoir été plus clair.

      Cordialement
      1. salut,

        si les stdin te dérangent, voici une version très simple pour débutant :

        int main(void)
        {
        char rep;
        do
        {
        printf("\nVoulez-vous recommencer ? Y/N\n");
        scanf("%c", &rep);
        if(rep != 'N' && rep != 'Y')
        {
        printf("\nRepondez uniquement par Y ou par N\n");
        }
        } while(rep != 'N');
        return 0;
        }
        1. OK bah sa me vas mieux la deuxième je comprend un pu mieux disons qu'il me manque un peu de base dans le C car je débute !