2eme version mais ne marche pas
Merci beaucoup de votre aide je suis tujours entrain de voir purquoi ça marche pas! j'ai changer très peut de truc et ça s'execute mais en voyant le resultats (erreur de segmentation ) du probablement à l'allocation du tableau dictionnaire. merci
Code:
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 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
/*
* Lecture simplifié d'un fichier texte
* Auteur :
* Date :
*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define LGMAX 30
#define MAXMOTS 100
/*
* Structure simple de la fonction lireDico
* Lecture du fichier et affichage sur l'ecran
* sans utilisation de structures de données
void lireDico(char *nomFichier)
{
FILE *f;
char tmp[LGMAX];
f=fopen(nomFichier,"r");
if(f==NULL)
{
fprintf(stderr,"Erreur d'ouverture du fichier ( %s )!\n",nomFichier);
exit(1);
}
else
fprintf(stdout,"Ouverture avec Succes !\n\n");
while(fscanf(f,"%s",tmp)!=EOF)
printf("%s\n",tmp);
fclose(f);
}
*/
/* Declaration de la variable Globale
* Structure de donnée tableau de
* chaines de caractères
*/
void lireDicotab(char *nomFichier,char *dictionnaire[MAXMOTS])
{
FILE *f;
char tmp[LGMAX];
int i=0;
f=fopen(nomFichier,"r");
if(f==NULL){
fprintf(stderr,"Erreur d'ouverture du fichier ( %s )!\n",nomFichier);
exit(1);
}
else
fprintf(stdout,"Ouverture avec Succes !\n\n");
while((fscanf(f,"%s",tmp)!=EOF) && i<MAXMOTS){
dictionnaire[i]=tmp;
i++;
}
fclose(f);
}
/* Fonction pour affichage des mots du dictionnaire */
void afficher(char *dictionnaire[MAXMOTS])
{
int j;
for(j=0;j<=MAXMOTS;j++){
printf("%s\n",dictionnaire[j]);
}
printf("Fonction executée avec succes !\n");
}
int main(int argc,char *argv[])
{
char *filename;
int i;
// char *dictionnaire;// = (char*)malloc(MAXMOTS);
char *dictionnaire[MAXMOTS];
//char dictionnaire[MAXMOTS][LGMAX];
for(i = 0; i < MAXMOTS; ++i) {
dictionnaire[i] = (char*)malloc(LGMAX);
}
filename=argv[1];
// lireDico(filename);
lireDicotab(filename,dictionnaire); /* Lecture à partir du fichier */
afficher(dictionnaire); /* afficher le dictionnaire */
fprintf(stdout,"\nOn atteint la fin - Fichier Close !\n");
return EXIT_SUCCESS;
} |