1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include "dico.h"
int choisir_mot(char *mot_choisi)
{
FILE* dico = NULL;
long nb_mots = 0, num_mot = 0;
int caractere; /* ca ne sert a rien d'initialiser caractere ici */
dico = fopen("dico.txt", "r");
if(dico == NULL)
{
return 0;
}
do
{
/* tu peux verifier aussi que tu as bien lu un caractere en testant
caractere == NULL */
caractere = fgetc(dico);
if (caractere == '\n')
{
nb_mots++;
}
} while(caractere != EOF);
num_mot = nombre_aleatoire(nb_mots);
/* ton while te permet de relire toujours le même mot a cause du rewind
est ce bien ce que tu veux? */
while(num_mot > 0)
{
rewind(dico);
caractere = fgetc(dico);
if(caractere == '\n')
{
num_mot--;
}
}
/* tu stocke une partie du dico dans mot_choisi */
fgets(mot_choisi, 99, dico); /* un '\0' est placé a la fin, donc 99 */
mot_choisi[strlen(mot_choisi) - 1] = '\0';
fclose(dico);
return 1;
}
long nombre_aleatoire(long max)
{
srand(time(NULL));
return(rand() % max);
} |
Partager