Partage
  • Partager sur Facebook
  • Partager sur Twitter

affichage %s d'un sgets

    3 juillet 2019 à 23:50:19

    Bonsoir, alors voila, je suis arrivé au TP du "Pendu" de Mathieu Nebra, j'en suis a peine au début et je bloque sur un fgets qui ne me renvois pas le mot que j'ai mis dans mon fichier.txt

    Désolé si je m'exprime mal, ca fait que très peu que je commence a programmer alors je n'emplois pas exactement les bon termes...

    je vous partage mon code pour avoir un peu d'aide si le coeur vous en dit..

    mon main.c :

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <ctype.h>
    #include <time.h>
    
    #include "word.h"
    
    #define TAILLE_TABLEAU_MAX 1000
    
    
    int main (int argc, char *argv[])
    {
        int nombreCoup = 10, nombreMot = 0, motChoisit = 0, i = 0;
        signed char nombreEspace[TAILLE_TABLEAU_MAX];
        signed char motMystere[TAILLE_TABLEAU_MAX];
        const int MIN = 0;
        srand(time(NULL)); // initialisation fontion du nombre aléatoire
    
        create_word(); // créer un fichier .txt avec les mots (word.c)
    
        FILE* read_How = fopen("MOT_PENDU.txt", "r");
        if (read_How == NULL)
            exit(1);
    
        while (fgets(nombreEspace, TAILLE_TABLEAU_MAX, read_How) != NULL)
        {
            nombreMot += 1;
        } // Nombre de mot dans le TXT
    
        motChoisit = (rand() % nombreMot - MIN + 1) + MIN; // choisis aléatoirement un mot
    
        do
        {
            fgets(motMystere, TAILLE_TABLEAU_MAX, read_How);
            i++;
        } while ( i < motChoisit ); // prend le mot choisis aléatoirement
    
    
        fclose(read_How);
    
    
    
    
        /* ----------------------------------------------- */
    
        printf("Bienvenue au jeu du pendu\n\n");
    
        printf("%d // %s", motChoisit, motMystere); // TEST // TEST // TEST //
    
    
        return 0;
    }

    mon word.c :

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    
    void create_word(void) /* bibliotheque des mots du pendu */
    {
        FILE *txtPendu = fopen("MOT_PENDU.txt", "w");
    
        if (txtPendu == NULL)
            exit(1);
    
        fputs("MARRON\n", txtPendu);
        fputs("ROUGE\n", txtPendu);
        fputs("TRIANGLE\n", txtPendu);
        fputs("SUCETTE", txtPendu);
        /* retirer le \n pour le dernier */
    
        fclose(txtPendu);
    }
    

    et un word.h avec les prototypes ...

    Le problème c'est que que je lance le programme, le printf en dessous du "Bienvenue dans le jeu du Pendu" m'affiche une sorte de [?] en petit...

    Help ?



    • Partager sur Facebook
    • Partager sur Twitter
      4 juillet 2019 à 2:01:28

      Alors quand tu as fini de compter le nombre de mots de ton fichier, ton pointeur de fichier se trouve à la fin.

      Il faut que tu reviennes au début pour lire les mots.

      • Partager sur Facebook
      • Partager sur Twitter
        4 juillet 2019 à 13:23:52

        Oh !! Je n'avais pas vus ca comme ca ! et c'est logique du coup ! Merci beaucoup !!
        • Partager sur Facebook
        • Partager sur Twitter

        affichage %s d'un sgets

        × 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