Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme code switch

Ca ne prend que le default

Anonyme
    1 novembre 2006 à 17:18:19

    Ton problème viens du fait que scanf ne scanne ce que tu lui rentres que jusqu'au premier espace. Il ignore tout ce qu'il y a après l'espace. Voila pourquoi il considère "Ta mère" comme "Ta". Cherches du côté de la fonction 'fgets', je pense qu'elle est plus adaptée.

    PS: merci de mettre ton code dans des balises , afin que ton code soit coloré automatiquement, et, du coup, bien plus simple a lire.
    • Partager sur Facebook
    • Partager sur Twitter
      1 novembre 2006 à 17:20:54

      Autre problème, l'instruction switch ne fonctionne qu'avec des char et des int. Ici, tu lui envoies des char *.
      • Partager sur Facebook
      • Partager sur Twitter
        1 novembre 2006 à 17:24:12

        sinon tu peux utiliser if-else if-elsse
        • Partager sur Facebook
        • Partager sur Twitter
          1 novembre 2006 à 17:25:10

          bon je vais essayé de faire une autre fonction... merci

          Edit : j'ai deja essayé les conditions , mais ca n'a pas nonplus marché :(
          je suis pas tres fort mais je regarde sur le net et tout et je ne vois aucun code qui correspondrais au mien...
          • Partager sur Facebook
          • Partager sur Twitter
            1 novembre 2006 à 17:33:48

            Citation : Roxun


            [...]
            switch ('name')
            {
            case 'ta mere!':
            [...]


            Autre chose name est une variable. Tu ne dois pas la mettre entre apostrophes.
            ta mere! est une chaîne de caractères qu'il faut mettre entre guillemets, et non entre apostrophes.
            • Partager sur Facebook
            • Partager sur Twitter
              1 novembre 2006 à 17:39:59

              Oui mais si je fais sa la ligne est fausse :/
              • Partager sur Facebook
              • Partager sur Twitter
                1 novembre 2006 à 17:46:33

                Citation : Roxun

                Oui mais si je fais sa la ligne est fausse :/


                Si tu fais quoi ?
                • Partager sur Facebook
                • Partager sur Twitter
                  1 novembre 2006 à 17:58:34

                  Le C n'est pas du PHP ou autre langage !
                  En C on utilise la fonction strcmp() de <string.h> pour vérifier si deux chaînes sont identiques.
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    1 novembre 2006 à 18:03:10


                    #include <stdio.h>
                    #include <stdlib.h>
                    #include <string.h>

                    int main(void){
                        char buffer[256];
                        // On extrait des caractères de stdin jusqu'a rencontré le '\n' qui correspond a un appui sur la touche entrée, puis on "mange" ce line feed sans le stocker dans aucune variable => voir le man...
                        scanf("%255[^\n]%*c",buffer);
                        // Utiliser strcmp pour comparer des chaines de caractères, surtout pas switch/case !
                        if(strcmp(buffer,"value0")==0){
                        }
                        else if(strcmp(buffer,"value1")==0){
                        }
                        else if(strcmp(buffer,"value2")==0){
                        }
                        return EXIT_SUCCESS;
                    }
                    • Partager sur Facebook
                    • Partager sur Twitter
                      1 novembre 2006 à 19:36:42

                      Citation : eminemleboss34

                      sinon tu peux utiliser if-else if-elsse


                      avec 2 s, des fois qu'y en ait un qui pète... On est jamais trop prudent...
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Music only !
                        1 novembre 2006 à 19:41:04

                        lol xD
                        Non sans rire ^^ esce que quelqu'un peux me faire un code qui reprend ce que je voulais faire car je suis debutant et si je ne vois pas comment on fais sa j'imagine pas le reste ...
                        merci d'avancee
                        • Partager sur Facebook
                        • Partager sur Twitter
                          1 novembre 2006 à 20:15:19

                          Il faut toujours mettre un break a chaque case.
                          Met ton code dans les balises prevu a cet effet.

                          Kurapix
                          • Partager sur Facebook
                          • Partager sur Twitter
                            1 novembre 2006 à 20:17:24

                            lol j'ai essayé avec et sans et sa change rien mais ce n'etait pas vraiment ma question ou plutot "demande" ^^
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Anonyme
                              1 novembre 2006 à 20:49:24

                              Et mon code, il ne te plait pas ?!
                              Dis moi s'il y a des choses que tu ne comprends pas dedans et ce qui te pose problème plutôt que de l'ignorer =p
                              Parce qu'a priori je t'ai proposé une solution pour ce que tu demandes...
                              • Partager sur Facebook
                              • Partager sur Twitter
                                1 novembre 2006 à 21:12:57

                                Ben je ne comprend pas tout :
                                #include <stdio.h>
                                #include <stdlib.h>
                                #include <string.h>

                                int main(void){
                                    char buffer[256];
                                    // On extrait des caractères de stdin jusqu'a rencontré le '\n' qui correspond a un appui sur la touche entrée, puis on "mange" ce line feed sans le stocker dans aucune variable => voir le man...
                                    scanf("%255[^\n]%*c",buffer);
                                    // Utiliser strcmp pour comparer des chaines de caractères, surtout pas switch/case !
                                    if(strcmp(buffer,"value0")==0){
                                    }
                                    else if(strcmp(buffer,"value1")==0){
                                    }
                                    else if(strcmp(buffer,"value2")==0){
                                    }
                                    return EXIT_SUCCESS;
                                }


                                else if(strcmp(buffer,"value1")==0)

                                je comprend pas strcmp , buffer c'est la variable ca ok et value1 et ==0 je comprend pas
                                il y a aussi
                                scanf("%255[^\n]%*c",buffer);
                                c'est tout c'est [^ et %*
                                je ne vois meme pas a quoi il sert ce code , si c'est le même que le mien Oo

                                Sinon si c'est le meme esce que je dois remplacé les value parce que il dit et mettre entre les {} printf... ? sinon je vois vraiment pas
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  2 novembre 2006 à 3:14:52

                                  Citation : Roxun


                                  else if(strcmp(buffer,"value1")==0)


                                  je comprend pas strcmp , buffer c'est la variable ca ok et value1 et ==0 je comprend pas


                                  http://man.developpez.com/man3/strcmp.3.php

                                  Citation : Pas de titre


                                  il y a aussi

                                  scanf("%255[^\n]%*c",buffer);

                                  c'est tout c'est [^ et %*


                                  C'est scanf() qui est complexe. Personellement, je ne comprends pas non plus, mais en lisant ceci :

                                  http://xrenault.developpez.com/tutoriels/c/scanf/

                                  on devrait y arriver...
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Music only !

                                  Probleme code switch

                                  × 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