#include #include #include #include #include "arbre.h" void clearInputBuffer() // works only if the input buffer is not empty { int c; do { c = getchar(); } while (c != '\n' && c != EOF); } void pause() { printf("\nAppuyez sur ENTREE pour continuer...\n"); getchar(); } void bonjour(){ system("clear"); printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); printf("\nBonjour et bienvenue dans le projet de Programmation Avancée IMA 3\n\n"); printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n"); } void test_arguments(int argc, char *argv[],char mot_dico[20], char mot_fichier[20]){ if(argc <2){ printf("Vous n'avez pas entrée de dictionnaire ainsi que de fichier\n"); printf("Veuillez entrez votre nom de dictionnaire\n"); scanf("%s",mot_dico); printf("\n\n"); printf("Veuillez entrez votre nom de fichier\n"); scanf("%s",mot_fichier); printf("\n\n"); } else if(argc <3){ printf("Vous n'avez pas entrée de fichier\n"); printf("Veuillez entrez votre nom de fichier\n"); scanf("%s",mot_fichier); printf("\n\n"); } } void lire_dico(int argc, char *argv[],char mot_dico[20], char mot_fichier[20],Dico* mondico,FILE* dico){ printf("==================================================================\n"); if(argc >1){ printf("chargement de votre dictionnaire \n"); printf("nom: %s\n",argv[1]); dico=fopen(argv[1],"r"); } else { printf("chargement de votre dictionnaire \n"); printf("nom: %s\n",mot_dico); dico=fopen(mot_dico,"r"); } // else dico=fopen("words-no-accents","r"); if(dico == NULL){ printf("Nous avons pas compris votre demande.\nNous vous chargeons le dictionnaire par default\n"); printf("nom du dico: words-no-accents\n"); dico=fopen("words-no-accents","r"); } charger_dico(dico,&mondico); // affiche_dico(mondico); fclose(dico); printf("==================================================================\n\n\n"); } void lire_fichier(int argc, char *argv[],char mot_fichier[20],Dico* mondico,FILE** fichier_utilisateur){ printf("##################################################################\n"); if(argc >2){ printf("Ouverture de votre fichier: %s \n",argv[2]); *fichier_utilisateur=fopen(argv[2],"r"); } else { printf("Ouverture de votre fichier: %s \n",mot_fichier); *fichier_utilisateur=fopen(mot_fichier,"r"); } if (fichier_utilisateur==NULL){ printf("Nous avons pas reussi à ouvrir le fichier\n"); } printf("##################################################################\n"); } void fin(Dico* mondico){ printf("\n\n\nLe programme est fini, vous pouvez relancer une execution\nCommande: ./executable NOM-DICO NOM-FICHIER\n\nA bientôt\n"); free_dico(mondico); } void test_fichier(Dico* mondico,FILE* fichier_utilisateur){ if (fichier_utilisateur!=NULL){ printf("\n\n¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤\n"); printf("analyse en cours\n\n"); int juste=0; int faux=0; analyse_fichier(fichier_utilisateur,mondico,&juste,&faux); printf("Votre fichier contient %d de mots, dont %d justes et %d faux.\n",juste+faux,juste,faux); printf("¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤\n"); pause(); } } int main (int argc,char *argv[]){ FILE* dico = NULL; char mot_dico[20]; //opti char mot_fichier[20]; FILE* fichier_utilisateur = NULL; struct dico mondico; bonjour(); pause(); test_arguments(argc,argv,mot_dico,mot_fichier); lire_dico(argc,argv,mot_dico,mot_fichier,&mondico,dico); clearInputBuffer(); pause(); lire_fichier(argc,argv,mot_fichier,&mondico,&fichier_utilisateur); pause(); test_fichier(&mondico,fichier_utilisateur); if (fichier_utilisateur!=NULL){ fclose(fichier_utilisateur); } fin(&mondico); return 0; }