Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Programme pour un correcteur orthographique

5 réponses
Avatar
ashlee.dupont
Le d=E9but de mon programme est cens=E9 m'ouvrir deux fichier texte dont
l'un qui est mon dictionnaire mais maitenant il y en a plus qu'un qui
s'ouvre. Et la seconde partie de mon programme est une fonction qui
permet de comparer mes deux fichiers texte mais cela ne fonctionne
pas.

Pouvez vous me dire ou cela bloque car je ne suis d=E9butante dans la
programmation en C.


Merci pour votre aide

Le code en question :

#include <stdio.h>
#include <stdlib.h>
#define TAILLE_MAX 1000


typedef struct dico
{
char lettre;
char* mot;
struct ARBRE* fils;
struct ARBRE* frere;
}arbredico;


void ouvrir ()
{
char choix[256];
char chaine [TAILLE_MAX] =3D "";

printf("Quel fichier voulez vous ouvrir? mettre l'extention .txt
\n");
scanf("%s",choix);

FILE* fichier =3D NULL;

fichier =3D fopen (choix, "r");

if (fichier !=3D NULL)
{
while (fgets(chaine, TAILLE_MAX, fichier) !=3D NULL) // on lit le
fichier tant qu'on ne re=E7oit pas d'erreur NULL
{
printf ("%s", chaine); // on affiche la chaine qu'on vient
de lire
}
}
fclose (fichier);
}

void dictionnaire ()
{
char chaine [TAILLE_MAX];

FILE* arbredico =3D NULL;
arbredico =3Dfopen ("dico.txt","r");
if (arbredico !=3D NULL)
{
while (fgets(chaine, TAILLE_MAX, arbredico) !=3D NULL) // on lit
le fichier tant qu'on ne re=E7oit pas d'erreur NULL
{
printf ("%s", chaine); // on affiche la chaine qu'on vient
de lire
}
}
}


int comparer(*fichier, *arbredico)
{
while (!EOF( fichier) && (!EOF( arbredico)
{
for (int i=3D0; i<256;i++)
{
fgets (ligne[i].fichier);
fgets (ligne[i].arbredico);
strcmp (ligne[i].fichier && ligne[i].arbredico);
if
{
ligne[i].fichier !=3D ligne[i].arbredico;
fclose (fichier);
fclose (arbredico);
}
}
}
}


int main ()
{
char choix[256];
char dico[26];
ouvrir (choix, TAILLE_MAX);
dictionnaire (dico);

}

5 réponses

Avatar
Antoine
a écrit dans le message de news:

Le début de mon programme est censé m'ouvrir deux fichier texte dont
l'un qui est mon dictionnaire mais maitenant il y en a plus qu'un qui
s'ouvre. Et la seconde partie de mon programme est une fonction qui
permet de comparer mes deux fichiers texte mais cela ne fonctionne
pas.



Ton code n'est pas compilable :
tu définis ouvrir() sans paramètre et tu l'appelles avec 2 paramètres
(pareil pour dictionnaire())
tu n'as pas mis les types de variable dans comparer() (des FILE * surement)
EOF est une constante, pas une fonction,
... etc
Avatar
sandragarcia
On 19 mai, 21:49, "Antoine" wrote:
a écrit dans le message de news:


>Le début de mon programme est censé m'ouvrir deux fichier texte dont
>l'un qui est mon dictionnaire mais maitenant il y en a plus qu'un qui
>s'ouvre. Et la seconde partie de mon programme est une fonction qui
>permet de comparer mes deux fichiers texte mais cela ne fonctionne
>pas.

Ton code n'est pas compilable :
tu définis ouvrir() sans paramètre et tu l'appelles avec 2 paramètr es
(pareil pour dictionnaire())
tu n'as pas mis les types de variable dans comparer() (des FILE * suremen t)
EOF est une constante, pas une fonction,
... etc



Te serait il possible de me montrer ce qu'il faut mettre par rapport
au code
Avatar
Antoine
a écrit dans le message de news:

On 19 mai, 21:49, "Antoine" wrote:
Ton code n'est pas compilable :
tu définis ouvrir() sans paramètre et tu l'appelles avec 2 paramètres
(pareil pour dictionnaire())
tu n'as pas mis les types de variable dans comparer() (des FILE *
surement)
EOF est une constante, pas une fonction,
... etc





Te serait il possible de me montrer ce qu'il faut mettre par rapport
au code



donc enlever les parametres :
ouvrir ();
dictionnaire ();
fermer le fichier arbredico et mettre en commentaire la fonction comparer()
qui n'a pas de sens.
et lire plutot les 2 fichiers dans des tableaux pour pouvoir faire des
comparaisons ensuite
Avatar
sandragarcia
On 20 mai, 07:59, "Antoine" wrote:
a écrit dans le message de news:

On 19 mai, 21:49, "Antoine" wrote:

>> Ton code n'est pas compilable :
>> tu définis ouvrir() sans paramètre et tu l'appelles avec 2 param ètres
>> (pareil pour dictionnaire())
>> tu n'as pas mis les types de variable dans comparer() (des FILE *
>> surement)
>> EOF est une constante, pas une fonction,
>> ... etc
>Te serait il possible de me montrer ce qu'il faut mettre par rapport
>au code

donc enlever les parametres :
ouvrir ();
dictionnaire ();
fermer le fichier arbredico et mettre en commentaire la fonction comparer ()
qui n'a pas de sens.
et lire plutot les 2 fichiers dans des tableaux pour pouvoir faire des
comparaisons ensuite




Concernant mon code on m'a conseillé d'utiliser un radix tree pour
stocker les mots du dictionnaire. Mais le souci c'est que je ne sais
pas comment faire est ce que quelqu'un peut me m'aider.

Merci
Avatar
domi
wrote:

Concernant mon code on m'a conseillé d'utiliser un radix tree pour
stocker les mots du dictionnaire. Mais le souci c'est que je ne sais
pas comment faire est ce que quelqu'un peut me m'aider.



Si tu as déjà du mal à charger des fichiers en mémoire, les radix ou
patricia tree ça va pas être évident.
Mais il y a bien sûr des exemples sur le web, comme
http://cprops.sourceforge.net/cp_trie.3.html
et avec "spell checker" sur google on trouve des exemples de correcteur
orthographique en c ou c++ : http://minilien.com/?7v187HrjNp
(code c à la fin avec une liste chainee)
ou
http://arioch.unomaha.edu/~jclark/cs2840/spell/main.cpp (c++)