Partage
  • Partager sur Facebook
  • Partager sur Twitter

comparer une vatiable et une lettre

Sujet résolu
    27 avril 2006 à 16:45:26

    Bonjour,
    Voici un petit programme qui doit comparer une variable saisie par l'utilisateur avec une lettre.

    #include<stdio.h>
    #include <ctype.h>
    int main()
    {
    char type;
     do{printf("Veuillez entrer une lettre(v,b ou c)\n");
    type=getchar();
    type=tolower(type);   }
    while(type!='v'&&type!='b'&&type!='c');
    }


    Tout fonctionne bien tant que les lettres v, b ou c sont entrées; mais quand on entre une valeur différente, le message apparaît 2 fois (au lieu d’une)
    Si j’ai bien compris le programme compare la variable à la valeur mémorisée puis à la valeur saisie (et donc affiche 2 fois le message).
    Le problème vient-il bien de là ? Comment le résoudre ?

    Merci d’avance,
    Thomas

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      27 avril 2006 à 17:36:15

      Il faut faire plusieurs getchar jusqu'à trouver un \n. Ce code devrait fonctionner :
      #include<stdio.h>
      #include <ctype.h>

      int main(void)
      {
          char type;
          do {
              printf("Veuillez entrer une lettre [v,b,c]\n");
              type = getchar();
              type = tolower(type);
              while (getchar() != '\n')
                  ;
          } while (type != 'v' && type != 'b' && type != 'c');
      }
      • Partager sur Facebook
      • Partager sur Twitter
        28 avril 2006 à 17:17:01

        Ok, merci pour ton aide, sa fonctionne.
        • Partager sur Facebook
        • Partager sur Twitter

        comparer une vatiable et une lettre

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown