Partage
  • Partager sur Facebook
  • Partager sur Twitter

Afficher le nombre de mots pour dico

pendu

Sujet résolu
    7 mai 2006 à 22:41:08

    Salut,
    voila j'ai fait un fichier dico.txt, et j'ai fait 5 mots,et
    je veux verifier si ça peut marchaer avec code C ci dessous

    code C

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



      int main(int argc, char *argv[])
    {
       
       FILE* dico = NULL; // Le pointeur de fichier qui va contenir notre fichier
        long nombreMots =0;
        long i = 0;
        int caractereLu = 0;
       dico = fopen("dico.txt""r"); // On ouvre le dictionnaire en lecture seule

    // On vérifie si on a réussi à ouvrir le dictionnaire
    if (dico != NULL) // Si on n'a PAS réussi à ouvrir le fichier
    {
        printf("\nImpossible de charger le dictionnaire de mots");
        return 0; // On retourne 0 pour indiquer que la fonction a échoué
        // A la lecture du return‚ la fonction s'arrête immédiatement.
    }
       
     do
    {
        caractereLu = fgetc(dico);
        if (caractereLu == '\n')
            nombreMots++;
    } while(caractereLu != EOF)
       
       printf(" le nombre de mots est %ld",nombreMots);
        system("PAUSE");
        return 0;
    }

    Veuillez SVP me montrer mon erreur
    zerotamsa
    • Partager sur Facebook
    • Partager sur Twitter
      7 mai 2006 à 22:46:13

      A priori,il faut incrémenter encore une fois pour la dernière ligne et c'est bon ;)
      • Partager sur Facebook
      • Partager sur Twitter
        7 mai 2006 à 22:47:58

        sauf si on a tapé manuellement le \n a la fin du fichier.
        • Partager sur Facebook
        • Partager sur Twitter
          7 mai 2006 à 22:52:33

          Salut, tu as mis :
          if (dico != NULL) // Si on n'a PAS réussi à ouvrir le fichier
          {
              printf("\nImpossible de charger le dictionnaire de mots");
              return 0; // On retourne 0 pour indiquer que la fonction a échoué
              // A la lecture du return‚ la fonction s'arrête immédiatement.
          }

          mais c'est plutôt ça , non ?
          if (dico == NULL) // Si on n'a PAS réussi à ouvrir le fichier
          • Partager sur Facebook
          • Partager sur Twitter
            7 mai 2006 à 22:56:02

            une question... ça sert a quoi de faire un printf et de terminer direct le proggramme???utilise fprintf pour garder une trace...
            • Partager sur Facebook
            • Partager sur Twitter
              7 mai 2006 à 23:12:15

              Citation : le grand schtroumpf

              une question... ça sert a quoi de faire un printf et de terminer direct le proggramme???utilise fprintf pour garder une trace...



              Qu'est-ce que tu raconte :euh: Tu devrais aller au lit non ? o_O

              Bon, effectivement pour le == NULL, c'est mieu

              En plus, si tu tape \n manuellement à la fin de ton fichier cela fera deux caractères (\ et n) et non pas le caractère '\n' de code acsi '\012' (en base 8 (c'est à force d'utiliser tr, je m'en souviens))
              • Partager sur Facebook
              • Partager sur Twitter
                7 mai 2006 à 23:21:46

                non je voulais dire que tu tape 'entré' manuellement a la fin de ton fichier.

                et puis, le return 0; se fait dans la fonction main, donc la fonction s'arrête, et comme il s'agit de la fonction main, le proggramme s'arrête jste après le printf:

                Citation : tamsamani

                printf("\nImpossible de charger le dictionnaire de mots");
                    return 0; // On retourne 0 pour indiquer que la fonction a échoué
                    // A la lecture du return‚ la fonction s'arrête immédiatement.

                si ça avait été dans une fontion a part le return aurait juste terminer la fonction, mais la, il s'agit de main...
                • Partager sur Facebook
                • Partager sur Twitter
                  7 mai 2006 à 23:22:39

                  Citation : tamsamani

                  Veuillez SVP me montrer mon erreurzerotamsa


                  • En cas de défaut fopen() retourne NULL. La condition est fausse.
                  • Il manque un '\n' pour terminer l'affichage correctement.
                  • Le reste est correct. Le codage n'est cependant pas très 'canonique'...
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Music only !
                    7 mai 2006 à 23:26:15

                    salut,
                    mon programme s'arrete ici
                    dico = fopen("dico.txt"‚ "r");
                    et j'ai l'erreur suivant:
                    15 C:\Documents and Settings\tamsamani\Bureau\mes TP\TP c\test.c syntax error before string constant
                    j'ai pas compris comment s'ensortir

                    zerotamsa
                    • Partager sur Facebook
                    • Partager sur Twitter
                      7 mai 2006 à 23:34:24

                      Citation : tamsamani

                      mon programme s'arrete ici
                      dico = fopen("dico.txt"‚ "r");
                      et j'ai l'erreur suivant:
                      15 C:\Documents and Settings\tamsamani\Bureau\mes TP\TP c\test.c syntax error before string constant


                      Oui, je l'ai eu aussi. Ta virgule n'est pas conforme. Supprime la et retape la. (Ce n'est pas de ta faute. C'est un ancien bug du forum maintenant corrigé mais dont les effets se font encore sentir dans certains codes du tuto de M@teo...)


                      • Partager sur Facebook
                      • Partager sur Twitter
                      Music only !
                        7 mai 2006 à 23:38:36

                        Pour ce qui est de printf, il te renvoi un message sur la console donc tu ne perd pas sa trace ;)
                        • Partager sur Facebook
                        • Partager sur Twitter
                          7 mai 2006 à 23:48:16

                          >_< ce que je me tue a te dire, c'est qu'après le printf, ton message est afficher a l'écran, et même pas une miliseconde plus tard, il ferme le proggramme par un return DANS LA FONCTION MAIN!!!

                          • Partager sur Facebook
                          • Partager sur Twitter
                            7 mai 2006 à 23:55:30

                            Citation : le grand schtroumpf

                            Image utilisateur ce que je me tue a te dire, c'est qu'après le printf, ton message est afficher a l'écran, et même pas une miliseconde plus tard, il ferme le proggramme par un return DANS LA FONCTION MAIN!!!


                            Et ?
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Music only !
                              8 mai 2006 à 0:15:20

                              sallam,
                              maintenat c'est très clair , je remercie tous las amis qui ont participé, et surtout -ed- qui est très actif dans ce forum.
                              zerotamsa
                              • Partager sur Facebook
                              • Partager sur Twitter
                                8 mai 2006 à 12:04:19

                                Citation : tamsamani

                                sallam,
                                maintenat c'est très clair , je remercie tous las amis qui ont participé, et surtout -ed- qui est très actif dans ce forum.
                                zerotamsa


                                Merci. Cependant, j'apprécierai un peu moins de prosélytisme religieux dans un forum technique...
                                • Partager sur Facebook
                                • Partager sur Twitter
                                Music only !

                                Afficher le nombre de mots pour dico

                                × 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