Bonjour à tous,
j'ai eu envie de programmer un dictionnaire en C, seulement moncode ne fonctionne pas correctement. Il n'y a pas d'erreur lors de la compilation, mais lorsqu'il faut entrer un mot pour avoir sa traduction, cela ne fonctionne pas.
Mon programme demande le mot(ex:sleep) et en principe donne la traduction(dormir). Or mon fichier texte qui me sert à aller chercher le mot en francais commence par "abide demeurer" et lors de l'affichage de la traduction:
"Quel est le mot en Anglais? sleep"
"La traduction de abide=urer".
Il y a un problème lors de la recherche de chaîne et de l'affichage.
Voila mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main(int argc, char *argv[])
{
    FILE *fichier=NULL;
    int premierChoix=0, choixFin=0, nombreDeLettreDuMot=0, nombreDeLettreServant=0;
    char motFrancais[100], motAnglaisEntre[100], motAnglaisCherche[100], motTrouve[100];
 
    do
    {
         printf("Bienvenu dans ce programme de traduction Francais Anglais\n");
         printf("Traduction de l'Anglais au Francais\nTapez 1\nDu Francais a l'Anglais\nTapez 2\n");
         printf("Quel est vote choix?\n");
         scanf("%ld",&premierChoix);
 
         if(premierChoix==1)
         {
                            printf("Veuillez entrer le mot Anglais: ");
                            scanf("%s", motAnglaisEntre);
                            nombreDeLettreDuMot = strlen(motAnglaisEntre);
 
 
                            fichier=fopen("dicoANG.txt", "r");
                            if(fichier!=NULL)
                            {
 
                                             fscanf(fichier, "%s", motAnglaisCherche);                                             
                                             nombreDeLettreServant=nombreDeLettreDuMot--;
                                             fseek(fichier, nombreDeLettreServant, SEEK_CUR);
                                             fgets(motTrouve, 100, fichier);
                                             printf("Traduction de %s en Francais= %s\n", motAnglaisEntre, motTrouve);
                                             }
 
                            else
                            {
                                printf("Erreur d'ouverture de <dicoANG.txt>\n");
                                }
                                }
         else if(premierChoix==2)
         {
              printf("Entrez le mot Francais: ");
              scanf("%s", motFrancais);
              nombreDeLettreDuMot = strlen(motFrancais);
              printf("nombre de lettre:%ld\n", nombreDeLettreDuMot);
 
              fichier=fopen("dicoFR.txt", "r");
              if(fichier!=NULL)
              {
                               fscanf(fichier, "%s", motFrancais);
                               nombreDeLettreServant=nombreDeLettreDuMot--;
                               fseek(fichier, nombreDeLettreServant, SEEK_CUR);
                               fgets(motTrouve, 100, fichier);
                               printf("Traduction de %s en Anglais= %s\n", motFrancais, motTrouve);
                               }
              else
              {
                  printf("Erreur d'ouverture de <dicoFR.txt>\n");
                  }
                  }
         else
         {
             printf("Entrez un n° correct SVP\n");
             }
 
             printf("Voulez vous quitter?\n 1=OUI\n 2=NON\n");
             printf("Choix: ");
             scanf("%ld",&choixFin);
             }while(choixFin==2);
 
 
  return 0;
}
J'ai essayer une boucle au niveau du fscanf mais ça n'a pas marché, je n'esperais pas trop non plus ^^
Merci de votre aide.