main.c
1.89 KB
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
// --------------------------------------------------------
// Projet IMA3 2019 - Lecture d'une bibliothèque
// Décompte du nombre de fautes d'orthographe dans un texte
// Normand Quentin & Rouillé Guillaume
// --------------------------------------------------------
#include "tree.h"
int main(int argc, char *argv[])
{
init_pgrm();
Node tree = NULL;
int error = 0; // compteur d'erreurs
int correct = 0; // compteur de corrections effectuées
FILE* fp_lib;
FILE* fp_txt;
if(argc < 3)
{
printf("Le nombre d'arguments est incorrect. Veuillez réessayer.\n");
return EXIT_FAILURE;
}
fp_lib = fopen(argv[argc-2], "r"); // ouverture du fichier bibliothèque en mode lecture
fp_txt = fopen(argv[argc-1], "r+"); // ouverture du fichier à analyser en mode lecture/écriture
if(fp_lib==NULL || fp_txt==NULL)
{
printf("Erreur de lecture d'un des fichiers passés en paramètres.\n");
return EXIT_FAILURE;
}
init_tree(&tree); // initialisation de l'arbre indexé
read_lib(fp_lib, &tree); // lecture de la bibliothèque
read_txt(fp_txt, &tree, &error, &correct); // analyse du fichier et corrections éventuelles
// Si vous souhaitez imprimer l'arbre indexé complet :
//char word[MAX] = "";
//print_tree(tree, 0, word);
// Impression du nombre d'erreurs
if(error<2) printf("Dans le texte %s, %d mot n'est pas dans le dictionnaire %s.\n", argv[argc-1], error, argv[argc-2]);
else printf("Dans le texte %s, %d mots ne sont pas dans le dictionnaire %s.\n", argv[argc-1], error, argv[argc-2]);
// Impression du nombre de corrections
if(correct<2) printf("%d a été corrigé.\n", correct);
else printf("%d ont été corrigés.\n", correct);
free_tree(&tree); // Libération de l'espace mémoire
fclose(fp_lib); // Fermeture des fichiers texte
fclose(fp_txt);
return EXIT_SUCCESS;
}