Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème de fonction avec un fichier

Sujet résolu
    13 mai 2006 à 18:47:23

    salut, je suis en train de programmer le dico du pendu mais quand je veux compiler mon code le compilateur bloque sur une fonction qui fait appel à un nom de fichier. voici le code :

    int compterMot(FILE* fichier)
    {
            int nombreMot = 0,caractereLu;
            void rewind(Fichier);
            do
            {
                caractereLu = fgetc(Fichier);
                if (caractereLu == '/n')
                {
                    nombreMot ++;
                }
            while (caractereLu != EOF);
         
         return nombreMot;
    }     
    • Partager sur Facebook
    • Partager sur Twitter
      13 mai 2006 à 19:40:36

      Pourquoi tu fais
      void rewind(fichier);
      C'est
      rewind(fichier);


      Ensuite tu fais
      fgetc(Fichier);

      Ta variable que tu recois tu l'as appellée, fichier et pas Fichier
      • Partager sur Facebook
      • Partager sur Twitter
        13 mai 2006 à 20:11:40

        ok merci mais comme le problème était avant il persiste...

        int compterMot(FILE* fichier)
        {
                int nombreMot = 0,caractereLu;
                rewind(Fichier);
                do
                {
                    caractereLu = fgetc(fichier);
                    if (caractereLu == '/n')
                    {
                        nombreMot ++;
                    }
                while (caractereLu != EOF);
             
             return nombreMot;
        }     
        • Partager sur Facebook
        • Partager sur Twitter
          13 mai 2006 à 23:27:32

          merci, mais personne ne peut me dire le problème de ma fonction ? on ne peut pas mettre de fichier en argument ?

          int compterMot(FILE* fichier)
          {
                  int nombreMot = 0,caractereLu;
                  rewind(Fichier);
                  do
                  {
                      caractereLu = fgetc(fichier);
                      if (caractereLu == '\n')
                      {
                          nombreMot ++;
                      }
                  while (caractereLu != EOF);
               
               return nombreMot;
          }     
          • Partager sur Facebook
          • Partager sur Twitter
            13 mai 2006 à 23:29:38

            Tu peux nous dire quel est le probleme exactement ?
            "le compilateur bloque sur une fonction" c'est un peu vague.
            Tu peux nous copier le log de compilation stp ?
            • Partager sur Facebook
            • Partager sur Twitter
              14 mai 2006 à 22:15:38

              le voici :
              dico.c:11: error: syntax error before '*' token

              dico.c: In function `compterMot':
              dico.c:14: error: `Fichier' undeclared (first use in this function)
              dico.c:14: error: (Each undeclared identifier is reported only once
              dico.c:14: error: for each function it appears in.)

              dico.c:17: error: `fichier' undeclared (first use in this function)
              dico.c:22: error: `EOF' undeclared (first use in this function)
              dico.c:27: error: syntax error before "long"
              dico.c:28: error: redeclaration of 'nombreMot' with no linkage
              dico.c:13: error: previous definition of 'nombreMot' was here
              dico.c:29: error: `FILE' undeclared (first use in this function)
              dico.c:29: error: `NULL' undeclared (first use in this function)
              dico.c:33: error: `dico' undeclared (first use in this function)
              dico.c:35: error: `longueurMot' undeclared (first use in this function)
              dico.c:35: error: syntax error at end of input

              et le code complet :


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

              #include "dico.h"
              #endif


              int compterMot(FILE* fichier)
              {
                      int nombreMot = 0,caractereLu;
                      rewind(Fichier);
                      do
                      {
                          caractereLu = fgetc(fichier);
                          if (caractereLu == '\n')
                          {
                              nombreMot ++;
                          }
                      while (caractereLu != EOF);
                   
                   return nombreMot;
              }     

              long longueurMot;
              int nombreMot;
              FILE* fichier = NULL;
              fichier = fopen("dico.txt","r");
              if (fichier != NULL)
              {
                          nombreMot = compterMot(dico.txt);
                          srand(time(NULL));
                          longueurMot = rand(nombreMot);


              NB: ce code n'est pas terminé mais je voulais élimier les erreurs précédentes
              • Partager sur Facebook
              • Partager sur Twitter
                14 mai 2006 à 23:03:06

                Citation : Romino Power



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

                #include "dico.h"
                #endif



                Mais c'est quoi ça ?

                #include <stdlib.h>
                #include <stdio.h>
                #include <time.h>
                #include <string.h>
                #include "dico.h"

                Tout simplement, non ? Pourquoi aller chercher des complications inutiles ? Il faut cesser de mettre des instructions au hasard dans le code, surtout si tu ne les comprends pas...

                Relis le cours de M@teo sur la programmation modulaire pour apprendre le rôle des #ifndef etc. dans ce contexte...

                • Partager sur Facebook
                • Partager sur Twitter
                Music only !
                  14 mai 2006 à 23:07:24

                  c'est surtout le #ifndef qui est aberrant :)

                  Je suggère à notre ami de relire vite fait les cours sur les directives de préprocesseurs pour corriger ça
                  • Partager sur Facebook
                  • Partager sur Twitter
                    15 mai 2006 à 17:06:25

                    oui l'erreur venait tout simplement de là. Excusez-moi pour ce stupide post mais je suis un peu à côté de mes pompes pour l'instant.
                    merci pour vos réponses à bientôt !
                    • Partager sur Facebook
                    • Partager sur Twitter

                    problème de fonction avec un fichier

                    × 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