Dictionnaire de traduction

JSG19 Messages postés 3 Date d'inscription mercredi 15 décembre 2010 Statut Membre Dernière intervention 2 mars 2011 - 26 févr. 2011 à 02:20
JSG19 Messages postés 3 Date d'inscription mercredi 15 décembre 2010 Statut Membre Dernière intervention 2 mars 2011 - 2 mars 2011 à 01:40
Salut j'ai un dictionnaire a programmer a chaque fois que je programme soit j'ai le premier mot soit le dernier ou toute la liste de traduction
donc voici le code j'aimerais qu'on m'aide svp

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
int main(int argc, char *argv[])
{
int choix=0;
char mot[100];
char anglais[100];
char creole[100];
int j;
int i;
int e;
int m;
printf("WELCOME TO CREOLE/ENGLISH AND ENGLISH/CREOLE \n\n");

printf("please make a choice :\n\n ");
printf("1.ENGLISH/CREOLE DICTIONARY \n");
printf("2.CREOLE/ENGLISH DICTIONARY \n");
scanf("%d",&choix);


if(choix==2)
{ FILE* fichier=NULL;
fichier=fopen("word.txt","r");


printf("Antre yon mo: \n");
scanf("%s",creole);
e=1;



if (strcmp(creole,anglais)==0)







while(fscanf(fichier,"%s %s ",creole,anglais)!=EOF)

printf("mo angle an se: %s \n",creole);

}
}












system("PAUSE");
return 0;
}

4 réponses

cs_Chouchou182 Messages postés 252 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 25 avril 2011 1
26 févr. 2011 à 12:04
Salut,

Quelques idées

Algo :
1. Lire le mot à chercher
2. Boucle de lecture du dictionnaire:
3. Lire l'entrée suivante du dictionnaire
4. Si elle correspond au mot cherché, l'afficher (et terminer)
5. Sinon, continuer en 3.
(il te faut échanger le if strcmp et le while fscanf)

On n'utilise pas conio.h

Attention à scanf, fscanf : précise la longueur maximale des mots à lire pour être sûr qu'ils tiennent dans tes tableaux : scanf("%99s", creole);

Bonne prog,
0
JSG19 Messages postés 3 Date d'inscription mercredi 15 décembre 2010 Statut Membre Dernière intervention 2 mars 2011
26 févr. 2011 à 14:39
j'aimerais avoir une aide un peu plus clair mais quand meme j'essairai merci
0
cs_Chouchou182 Messages postés 252 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 25 avril 2011 1
1 mars 2011 à 18:02
Salut,

C'est plus clair ?

// scanf, fscanf, puts, printf, fopen, fclose
#include<stdio.h>
// free, exit
#include<stdlib.h>
// strcmp
#include<string.h>

const char * DIC = "dico.txt";
const char * ABSENT = "/absent du dictionnaire/";

typedef enum {
  A_B = 0,
  B_A = 1
} t_sens;

static
char *
cherche(t_sens sens, char* mot)
{
  FILE *fp;
  char *enregistrement[2];
  int pas_fini = 1;
  char *res = NULL;

  fp = fopen(DIC, "r");
  if (fp == NULL)
    exit(EXIT_FAILURE);
  while (pas_fini)
  {
    int n = fscanf(fp, "%ms %ms", enregistrement, enregistrement+1);
    switch (n)
    {
      case 2:
        if (strcmp(mot, enregistrement[sens]))
        {
          // pas le bon mot
          free(enregistrement[0]);
          free(enregistrement[1]);
        }
        else
        {
          // le bon mot
          free(enregistrement[sens]);
          pas_fini = 0;
          res = enregistrement[1-sens];
        }
        break;
      case 1:
        // plus qu'un mot à lire (étrange...)
        free(enregistrement[0]);
        // nobreak
      case EOF:
        pas_fini = 0;
        break;
      default:
        // fscanf cassé
        exit(EXIT_FAILURE);
    }
  }
  fclose(fp);
  return res;
}

static
void
un_mot(t_sens sens, char * mot)
{
  char * ret = cherche(sens, mot);
  printf("%s: ", mot);
  if (ret == NULL)
    puts(ABSENT);
  else
  {
    puts(ret);
    free(ret);
  }
}

static
t_sens
lire_sens(char *s)
{
  return (s[0] == '2')?B_A:A_B;
}

int
main()
{
  char * sens;
  char * mot;
  goto dbt;
  do {
    un_mot(lire_sens(sens), mot);
    free(sens);
    free(mot);
dbt:
    puts("Sens (1/2) puis mot: ");
  } while (scanf("%ms %ms", &sens, &mot) != EOF);
  puts("Ciao...");
  exit(EXIT_SUCCESS);
}


N'hésite pas à être plus explicite sur ce qui te bloque.

Bonne prog,
0
JSG19 Messages postés 3 Date d'inscription mercredi 15 décembre 2010 Statut Membre Dernière intervention 2 mars 2011
2 mars 2011 à 01:40
merci
0
Rejoignez-nous