Générer 10 mots aléatoires à partir d'un csv
Bonjour,
Je réalise en groupe un projet (devoir) dont le but (du programme) est l'apprentissage de vocabulaire. Mais le programme tel qu'il est écrit marche mais finit quand il finit de parcourir tout le fichier.
Voici mon code pour un Vocabulaire Francais->Anglais :
Code:
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
| void VocabulaireFrancaisAnglais(void)
{
vider_tampon();
FILE *fichier = NULL; /* fichier est le nom local du fichier */
fichier = fopen("VocabFraAng.csv" , "r"); /* Initialisation du fichier qui représentera le fichier data.txt ouvert */
if ( fichier != NULL )
{
char MotFrancais[WORD_SIZE_MAX];
char MotAnglais[WORD_SIZE_MAX];
char ligne[WORD_SIZE_MAX];
char* motTemp;
char saisie[WORD_SIZE_MAX]; /* Déclaration d'une variable "saisie" de type chaîne de caractères pour la suite */
int resultat = 0;
while ( fgets( ligne, sizeof(ligne), fichier ) != NULL && !feof(fichier)) /* Lire une ligne */
{
/* memset (saisie, 0, sizeof (saisie)); */
motTemp=strtok(ligne, ","); /* APPEL jusqu'à la virgule => (EN GROS) LE PREMIER MOT (Francais) */
strncpy(MotFrancais, motTemp, WORD_SIZE_MAX); /* Fonction qui copie le contenu de motTemp dans MotFrancais */
motTemp=strtok(NULL, ""); /* APPEL jusqu'à la virgule => DEUXIEME MOT (Anglais) */
strncpy(MotAnglais, motTemp, WORD_SIZE_MAX);
fprintf(stdout, "Traduction de : %s ? (Puis taper sur entrée)\n", MotFrancais);
/* DEBUG
fprintf(stdout, "%s", saisie);
*/
fgets(saisie, sizeof saisie, stdin); /* Saisie sécurisée : fonction équivalente à fscanf */
/* La fonction strcmp renvoie une valeur (0 si c'est juste) que l'on affecte à une variable "resultat" */
resultat = strcmp(saisie, MotAnglais);
if (! resultat) /* Correction */
fprintf(stdout, "Bravo. C'était la bonne réponse :-)\n\n");
else
fprintf(stdout, "Faux. La réponse était %s \n", MotAnglais);
}
if(fclose(fichier) == EOF)
{
fprintf(stdout, "Probleme de fermeture du fichier");
EXIT_FAILURE;
}
}
else /*( fichier == NULL)*/
{
fprintf(stdout, "Problème d'ouverture du fichier \n");
EXIT_FAILURE;
}
EXIT_SUCCESS;
} |
Tandis que le VocabFraAng.csv en question se présente de la manière suivante (quand on l'ouvre avec un bloc-notes)
Motfrancais1,motanglais1
Motfrancais2,motanglais2
Motfrancais3,motanglais3
...
Merci de votre aide