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;
} |
Partager