Partage
  • Partager sur Facebook
  • Partager sur Twitter

suite du programme qui demande le nom

Sujet résolu
    27 juillet 2006 à 12:52:52

    :p:D re bonjour voilà j'ai essayer d'inclure fgets mais le prgramme me met comme répnse des insanité d'ordinateur que je n'oserais même pas recopier ici tellement il va fort quelqu'un pourrait -il me donner la réponse a cet épineux problème mille merci je vous donne le code modifié;
    #include <stdlib.h>
    #include <stdio.h>

    struct Personne
    {
        char nom[100];
        char prenom[100];
        char adresse[1000];
       
        long age;
        int garcon; // Booléen : 1 = garçon, 0 = fille
    };
    int main(int argc, char *argv[])
    {
        Personne utilisateur;
        char saisie[100];
        char saisie2[100];
        printf("Quel est votre nom ? ");
        fflush (stdout);
        fgets(saisie, sizeof saisie, stdin);
        printf("Votre prenom ? ");
        fflush (stdout);
        fgets(saisie2, sizeof saisie2, stdin);

        printf("Vous vous appelez %s %s", utilisateur.prenom, utilisateur.nom);
        system("PAUSE");
        return 0;
    }
    pk?. ca ne fonctionne pas je ne vois pas l'erreur merci de votre aide !!e tbon code a tous!!!!
    • Partager sur Facebook
    • Partager sur Twitter
      27 juillet 2006 à 13:01:45

      Correction :
      #include <stdlib.h>
      #include <stdio.h>

      struct Personne
      {
          char nom[100];
          char prenom[100];
          char adresse[1000];
         
          long age;
          int garcon; // Booléen : 1 = garçon, 0 = fille
      };
      int main(int argc, char *argv[])
      {
          struct Personne utilisateur; // C'était valable en C++ mais pas en C
          char saisie[100];
          char saisie2[100];
          printf("Quel est votre nom ? ");
          //fflush (stdout); je ne vois pas en quoi c'est necessaire...
          fgets(saisie, /*sizeof saisie*/ 100, stdin);
          printf("Votre prenom ? ");
          //fflush (stdout); idem
          fgets(saisie2, 100, stdin);

          printf("Vous vous appelez %s %s", utilisateur.prenom, utilisateur.nom);
          system("PAUSE");
          return 0;
      }
      • Partager sur Facebook
      • Partager sur Twitter
        27 juillet 2006 à 13:04:15

        Pour les fflush(stdout), il faut aller lire le site de -ed-. D'aprés ce que j'ai compris, la chaîne est incomplète, il manque un '\n', il faut donc forcer la chaîne à s'afficher
        • Partager sur Facebook
        • Partager sur Twitter
          27 juillet 2006 à 13:05:47

          fgets(saisie2, sizeof saisie2, stdin);

          :waw:
          fgets s'utilise pour les fichiers à ma connaissance.
          Utilise scanf, c'est un petit peu plus facile.
          • Partager sur Facebook
          • Partager sur Twitter
            27 juillet 2006 à 13:08:06

            Citation : oussama1305

            fgets(saisie2, sizeof saisie2, stdin);


            :waw:
            fgets s'utilise pour les fichiers à ma connaissance.
            Utilise scanf, c'est un petit peu plus facile.



            C'est mal de dire des choses approximatives. Tout est
            • Partager sur Facebook
            • Partager sur Twitter
              27 juillet 2006 à 13:17:08

              :p ah merci kidpaddle mais ta soluce foire exactement comme la mienne je la remt pour y voir plus clair, il y a un truc qui déconne mais quoi???? enfin la voilà;
                   


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

              struct Personne
              {
                  char nom[100];
                  char prenom[100];
                  char adresse[1000];
                 
                  long age;
                  int garcon; // Booléen : 1 = garçon, 0 = fille
              };
              int main(int argc, char *argv[])
              {
                  struct Personne utilisateur; // C'était valable en C++ mais pas en C
                  char saisie[100];
                  char saisie2[100];
                  printf("Quel est votre nom ? ");
                  //fflush (stdout); je ne vois pas en quoi c'est necessaire...
                  fgets(saisie, /*sizeof saisie*/ 100, stdin);
                  printf("Votre prenom ? ");
                  //fflush (stdout); idem
                  fgets(saisie2, 100, stdin);

                  printf("Vous vous appelez %s %s", utilisateur.prenom, utilisateur.nom);
                  system("PAUSE");
                  return 0;
              }
              ou est le problème je ne le vois pas une bonne âme passerait -elle par ici pour donner la réponse a ce simple programme que je n'arrive pas résoudre merci!!!!! ^^o_O
              • Partager sur Facebook
              • Partager sur Twitter
                27 juillet 2006 à 13:21:48

                Prend la peine de lire le lien avec celui-ci en complément. Tu devrais trouver une réponse
                • Partager sur Facebook
                • Partager sur Twitter
                  27 juillet 2006 à 13:43:44

                  C'est normal que ça ne fonctionne pas :
                  fgets(saisie, 100, stdin);
                  /*...*/
                  fgets(saisie2, 100, stdin);
                  /*...*/
                  printf("Vous vous appelez %s %s", utilisateur.prenom, utilisateur.nom);

                  Tu n'inscris donc jamais le nom et le prénom dans utilisateur.nom et utilisateur.prenom.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    27 juillet 2006 à 13:44:32

                    :D:euh: désolé octal et merci de ton aide mais je ne trouve pas la source de mon erreur alors se serait sympa de me dire comment faire car ca fait deux heures que je suis dessus sans résultats alors une aide salvatrices svp amis zéros!!!!!!!!!!!! :-°^^
                    • Partager sur Facebook
                    • Partager sur Twitter
                      27 juillet 2006 à 14:05:30

                      Il ne faut pas copier coller mes codes. Je ne m'occupe que de l'algorythmique principale. Ainsi, je t'ai donné le code pour utiliser fgets avec ton exemple mais SANS SE PREOCUPER DE TA STRUCTURE. Forcément si tu affiche utilisateur.nom alors que tu ne l'as pas rempli, ça a de grandes chances de foirer :p

                      Bon comme je suis gentil je te donne le vrai code à copier coller (si tu le souhaite) et tu me feras le plaisir de poster dans le même topic la prochaine fois. Marre de switcher entre tes topics pour le même problème. (d'ailleurs je mets le même post)

                      code :
                      #include <stdlib.h>
                      #include <stdio.h>

                      struct Personne
                      {
                          char nom[100];
                          char prenom[100];
                          char adresse[1000];
                         
                          long age;
                          int garcon; // Booléen : 1 = garçon, 0 = fille
                      };
                      int main(int argc, char *argv[])
                      {
                          struct Personne utilisateur; // C'était valable en C++ mais pas en C
                          /*char saisie[100];
                          char saisie2[100]; maintenant on les enleve*/

                          printf("Quel est votre nom ? ");
                          //fflush (stdout); je ne vois pas en quoi c'est necessaire...
                          fgets(utilisateur.nom, /*sizeof saisie*/ 100, stdin);
                          printf("Votre prenom ? ");
                          //fflush (stdout); idem
                          fgets(utilisateur.prenom, 100, stdin);

                          printf("Vous vous appelez %s %s", utilisateur.prenom, utilisateur.nom);
                          system("PAUSE");
                          return 0;
                      }
                      • Partager sur Facebook
                      • Partager sur Twitter
                        27 juillet 2006 à 14:11:46

                        :p:D merciiiiiiiiiiiiiiiiii bcp kidpaddle2 me voilà souvé la réponse était aussi simple ???? mais fallait la trouver un tout grand merci un double pour ta patience et ta gentillesse encore merci ^^:D
                        • Partager sur Facebook
                        • Partager sur Twitter

                        suite du programme qui demande le nom

                        × 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