Partage
  • Partager sur Facebook
  • Partager sur Twitter

les reponse avec des lettres

    2 décembre 2005 à 22:32:04

    voila jaimerai savoir comment on fait pour demander a lutilisateur de repondre avec une lettre
    int main()
    {
      unsigned char reponse;
      unsigned long age = 0;
      printf("Quel age avez vous??\n");
      scanf("%d", &age);
      if (age<18)
      {
      printf("tu est pas majeur aurevoir\n");
      }
      else
      {
      printf("alors es ce que tu as ton permit de conduire?(o/n)\n");
      scanf("%f", &reponse);
            if(reponse = o)
            {
            printf("c bien tu ira loin dans la vie\n");
            }
            else if(reponse = n)
            {
            printf("non!!! t nul\n");
            }
            else
            {
            printf("parle en francais s'il te plait\n");
            }
      }
      system("PAUSE");     
      return 0;
    }

    sa me met une erreur o niveau de la ligne
    if(reponse = o)
    voila jaimerai savoir comment faire pour regler lerreur
    • Partager sur Facebook
    • Partager sur Twitter
      2 décembre 2005 à 22:37:10

      Bas c'est normal c'est :


      if ( reponse == o)


      La tu affectes une valeur a une variable. ;) Le signe d'égalité c'est '=='
      • Partager sur Facebook
      • Partager sur Twitter
        2 décembre 2005 à 22:38:02

        o lerreure trop conne merci
        • Partager sur Facebook
        • Partager sur Twitter
          2 décembre 2005 à 22:39:27

          Je comprends pas pourquoi tu initialises ta variable age avec 0???
          • Partager sur Facebook
          • Partager sur Twitter
            2 décembre 2005 à 22:42:30

            je c pas c se quil disent de faire dans le tuto lol
            mai lerreure c pas sa g essayer sa me met "o" undeclared(first use in this fonction)
            • Partager sur Facebook
            • Partager sur Twitter
              2 décembre 2005 à 22:44:24

              Ben en faites c'est moi qui t'es mal écrit le truc dsl:


              if ( reponse == 'o')
              • Partager sur Facebook
              • Partager sur Twitter
                2 décembre 2005 à 22:46:40

                arfff ouai mai la sa me met toujours le else c a dire "tu peut parler en francais"c comme si il trouvai pas o
                • Partager sur Facebook
                • Partager sur Twitter
                  2 décembre 2005 à 22:48:58

                  Désolé je connais pas bien le C enfin les variables en C je fais surtout du C++
                  • Partager sur Facebook
                  • Partager sur Twitter
                    2 décembre 2005 à 22:49:50

                    ok merci quand meme tu ma enlever une erreur c deja un bon debut(put1 g laire chiant pour une question de merde
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      2 décembre 2005 à 22:52:07

                      Bah c'est le même principe,

                      reponse == 'n'

                      Tu comprends ce que tu fais quand tu le fais ? Pour des caractères (des "lettres") il faut entourer les-dites lettres de guillemets simples ' '
                      • Partager sur Facebook
                      • Partager sur Twitter
                        2 décembre 2005 à 22:54:04

                        Bas j'ai compilé son code proprement avec les '' et sa fait ce qu'il dit.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          3 décembre 2005 à 7:35:51

                          Avec scanf, pour avoir un caractère tu fais scanf("%c",&caractere);
                          • Partager sur Facebook
                          • Partager sur Twitter
                            3 décembre 2005 à 9:22:37

                            Non asmanur, tu devrais utiliser scanf("%s", &caractère);
                            donc j'ai refait ton code r1pp3 avec quelques modifications :



                            int main()
                            {
                              unsigned char <gras>reponse = ""</gras>;
                              unsigned long age = 0;
                              printf("Quel age avez vous??\n");
                              scanf("%d", &age);
                              if (age<18)
                              {
                              printf("tu est pas majeur aurevoir\n");
                              }
                              else
                              {
                              printf("alors es ce que tu as ton permit de conduire?(o/n)\n");
                              <gras>scanf("%s", &reponse);</gras>
                                    <gras>if(reponse == "o")</gras>
                                    {
                                    printf("c bien tu iras loin dans la vie.\n");
                                    }
                                    <gras>else if(reponse == "n")</gras>
                                    {
                                    printf("non??!! t nul!!\n");
                                    }
                                    else
                                    {
                                    printf("parles en francais s'il te plait.\n");
                                    }
                              }
                              system("PAUSE");     
                              return 0;
                            }


                            Voila c'est ce que tu voudrais faire mais même commme ca ca marche pas (stupide hein? ^^ ) parceque comparer des caratères ca n'utilise pas la même syntaxe que pour comparer des chiffres :
                            if (age == 18) ca marche et ca existe mais if (reponse == "oui") ca n'existe pas... et c'est mon problème à moi aussi :( ...
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Anonyme
                              3 décembre 2005 à 11:18:54

                              Parce que tu utilises une chaîne de caractère, avec le "%s" dans scanf, et les " " autour de o et n.

                              Il faut utiliser des guillemets simples ' '.

                              Ensuite le problème est (à mon avis, mais je fais pas de C) que vous utilisez un premier scanf qui récupère l'âge mais qui laisse ce qu'on appelle des "caractères parasites", qui sont hélas lus par le deuxième scanf. Et là ça marche plus.

                              D'où l'adage "scanf c'est mal".
                              • Partager sur Facebook
                              • Partager sur Twitter
                                3 décembre 2005 à 11:43:05

                                Voila j'ai corrigé, ca marche chez moi :
                                #include <stdio.h>
                                #include <stdlib.h>

                                int main(int argc, char *argv[]) // Fonction main
                                {
                                  char reponse; //Déclaration de la variable Reponse elle contient des characters
                                  unsigned long age = 0; //Variable long
                                  printf("Quel age avez vous??\n"); // Demande l'age a l'utilisateur
                                  scanf("%d", &age); // permet de recuperer ce que l'utilisateur a entré
                                  if (age<18) // Si age est inferieur a 18 alors
                                  {
                                  printf("tu est pas majeur aurevoir\n"); // Message tu es majeur, on va a la fin
                                  }
                                  else // mais si +18 alors
                                  {
                                  printf("alors es ce que tu as ton permit de conduire?(o/n)\n"); // On demande s'il a son permis
                                  scanf("%s", &reponse); // on attend sa réponse, et on l'affecte à reponse
                                       if(reponse == 'o') // Si reponse = o (oui)
                                        {
                                        printf("c bien tu iras loin dans la vie.\n");
                                        }
                                       else // Mais si n (non)
                                        printf("non??!! t nul!!\n");
                                        }
                                  system("PAUSE"); //On demande d'appuyer sur une touche 
                                  return 0;
                                }

                                En fait c'était la déclaration de la variable avec le unsigned char (puis l'affectation ""), ensuite c'était le else if, et les " a la place de ' qui faisait bugger le programme :-°
                                A+
                                • Partager sur Facebook
                                • Partager sur Twitter
                                Anonyme
                                  3 décembre 2005 à 11:48:07

                                  On dirait que oui.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    3 décembre 2005 à 11:48:28

                                    fodrai pas utiliser une fontction comme getchar(reponse)
                                    g entendu parler de sa mai je c pas a quoi sa sert
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      3 décembre 2005 à 11:49:12

                                      GetChar() c'est quand on veut que l'utilisateur appuie sur la touche "Entrée" :D
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        3 décembre 2005 à 11:52:55

                                        getchar() pas GetChar(), c'est du C pas du java :p
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          3 décembre 2005 à 13:19:32

                                          avec getchar ca va tout seul, et sinon pour avoir UN SEUL caractère sur scanf c'est %c, %s c'est pour une chaine entière.
                                          Avec getchar :

                                          char reponse = getchar();
                                          if(reponse =='o'){
                                             printf("tu as tapé 'o' sur ton clavier je le sais ");
                                          }
                                          else if (reponse =='n')
                                          {
                                             printf("tu as tapé 'n' sur ton clavier je le sais");
                                          }
                                          else
                                          pritf("Je ne sais pas ce que tu as tapé sur ton clavier :S");





                                          Et voilà :)
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          Anonyme
                                            3 décembre 2005 à 13:34:24

                                            Le problème est que le premier scanf laisse des caractères parasites.
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              3 décembre 2005 à 14:04:47

                                              et comment je fais si je veux vérifier une suite de carractères ? même chose qu'avec un seul ?
                                              • Partager sur Facebook
                                              • Partager sur Twitter

                                              les reponse avec des lettres

                                              × 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