Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Pendu] attribut numerique du premier mot

je l'aime ce pendu :p

Sujet résolu
    23 août 2006 à 14:30:11

    Bonjour,
            while(numMotChoisi>0)
            {
                caractereLu = fgetc(dico);
                if (caractereLu == '\n')
                    numMotChoisi--;
            }
    fgets(motPioche, 100, dico);

    Rassurer moi, avec ce code, le premier mot est donc le mot n°0 ??
    • Partager sur Facebook
    • Partager sur Twitter
      23 août 2006 à 14:33:00

      Le mot 0 pour toi c'est celui de la premiere ligne ?
      • Partager sur Facebook
      • Partager sur Twitter
        23 août 2006 à 14:37:30

        C'est effectivement ce que j'aimerai savoir
        • Partager sur Facebook
        • Partager sur Twitter
          23 août 2006 à 14:58:55

          Citation : A06

          Bonjour,

                  while(numMotChoisi>0)
                  {
                      caractereLu = fgetc(dico);
                      if (caractereLu == '\n')
                          numMotChoisi--;
                  }
          fgets(motPioche, 100, dico);


          Rassurer moi, avec ce code, le premier mot est donc le mot n°0 ??



          Si tu pars de la fin de fichier (voir fseek()) et que tu enlève '> 0' dans la condition de ta boucle, il me semble que oui.

          EDIT:

          Je pense que, pour aller en fin de fichier tu peux utiliser, pour éviter lseek, soit fgo(file, dernier_caractère), soit read_lines(file, 0, nombre_de_mots).

          ( non-testé )

          #include <stdio.h>

          /* max_line : renvoie la longueur de la plus longue ligne de `fp' */
          int max_line(FILE* fp)
          {
              char c;
              int size, max;
             
              size = max = 0;
              while ((c = fgetc(fp)) != '\n') {
                  size++;
                  if (size > max)
                          max = size;
              }
              return max;
          }       

          /* fgo : se déplace dans `fp' jusqu'au caractère `search' */
          int fgo(FILE* fp, char search)
          {
              int c;
              int ret;
             
              c = ret = 0;
              while ((c = fgetc(fp)) != search)
                  ret++;
              return ret;
          }   

          /* read_lines : se déplace dans `fp' de la ligne n° `start' à la n° `end' */
          char* read_lines(FILE* fp, int start, int end)
          {   
              char* s;
              int dif = end - start;
             
              while (start--)
                  fgo(fp, '\n');
                     
              if (dif > 0)   
                  while (dif--)
                      fgets(s, max_line(fp), fp);
              else
                  while (dif++)
                      fgets(s, max_line(fp), fp);   
              return s;   
          }
          • Partager sur Facebook
          • Partager sur Twitter
            23 août 2006 à 15:25:01

            fgo(file,EOF); o_O ?
            fseek(file,0,SEEK_END); c'est standard et peut-être plus rapide
            • Partager sur Facebook
            • Partager sur Twitter
              23 août 2006 à 15:28:13

              Citation : A06

              rien a voir ? :p


              Yep, mais j'ai rien compris à ta question :)
              • Partager sur Facebook
              • Partager sur Twitter
                23 août 2006 à 15:35:04

                moi j'ai compris c'est le principal lol :p non mais c'est resolu merci les topains :x
                • Partager sur Facebook
                • Partager sur Twitter
                  23 août 2006 à 19:36:00

                  Désolé j'ai passé un temps fou à éditer mon post maintes et maintes fois au risque d'être pas très clair... :p Mais là c'est bon, enfin.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  [Pendu] attribut numerique du premier mot

                  × 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