Bonjour,
je suis un débutant en Programmation C (ANSI) sous Ubuntu Linux et je Compile avec le GCC de GNU. je voudrai vous demande un petit coup de pouce pour rectifier mon petit programme pour qu'il puisse lire un fichier texte le stocker mot par mot dans un tableau de chaînes de caractères . et afficher le contenu de ce tableau par une deuxième fonction.
Merci d'avance.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
94
95
96
97
98
 
/*
 * 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;
     // printf("%s\n",dictionnaire[i]);
      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]);
      j++;
    }
  printf("Fonction executée avec succes !\n");
}
 
 
 
 
int main(int argc,char *argv[])
{
  char *filename;
  char *dictionnaire[MAXMOTS] = (char *)malloc(MAXMOTS*sizeof(char)*LGMAX);
  // int ** a = malloc(nrows * sizeof *a );
 
  filename=argv[1];
  // lireDico(filename);
  lireDicotab(filename,dictionnaire);
  afficher(dictionnaire);
 
  fprintf(stdout,"\nOn atteint la fin - Fichier Close !\n");
  return EXIT_SUCCESS;
}