Bonjour!

le code suivant me renvoies 2 erreurs.
69:2 warning passing argument 3 of 'lirefscanf' from incompatible pointer type
34:6 exepted 'struct ligne **' but argument is type of 'struct ligne (*) [10]'

La fonction qui pose pb est la derniere appelée dans le main.

Je ne comprend vraiment pas comment la corriger. Un copain me dit qu'aucune erreur ne lui apparait sous code block... et que je ne remplit jamais mon tableau car

Code : Sélectionner tout - Visualiser dans une fenêtre à part
fscanf(fp,"%s %s %d %d %d\n",sauveDonnee[i]->prenom, sauveDonnee[i]->nom, &sauveDonnee[i]->jour, &sauveDonnee[i]->mois, &sauveDonnee[i]->annee);
ne marche pas.

Merci par avance pour votre aide

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
 
#include <stdio.h>
#include <string.h>
 
 typedef struct {
  char prenom[100];
  char nom [100];
  int jour;
  int mois;
  int annee;  
}ligne;
 
int compteDonnees(char fichier[])
{
 char lignes[200];
 int nbLignes=0;
 
 FILE * fp;
 
 // ouverture fichier et verif
 if ((fp=fopen (fichier,"r")) == NULL)
 printf("Impossible d'ouvrir le fichier données en lecture\n");
 
 // lecture ligne par ligne
 // while (!=feof(fp))
 while(fgets(lignes,200,fp)!= NULL){
 nbLignes++;
 //fscanf(fp,"%s %s %d %d %d\n",ligne);
 }
 
 fclose (fp);
 return nbLignes;
}
 
void lirefscanf (char fichier[], ligne * annif, ligne * sauveDonnee[])
{
  int i,nbLignes;
 
  FILE * fp;
 
 // ouverture fichier et verif
 if ((fp=fopen (fichier,"r")) == NULL)
 printf("Impossible d'ouvrir le fichier données en lecture\n");
 
 nbLignes=compteDonnees(fichier);
 
 for(i=0; i<nbLignes;i++)
 {
  fscanf(fp,"%s %s %d %d %d\n",sauveDonnee[i]->prenom, sauveDonnee[i]->nom, &sauveDonnee[i]->jour, &sauveDonnee[i]->mois, &sauveDonnee[i]->annee);
 }
 
 fclose (fp);
}
 
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
int main (int argc, char argv[])
{
 char nomFichier[100];
 ligne ligneTexte;
 ligne tabDonnee [10];
 
 printf("\tIndiquer le nom du fichier, avec son extension, svp\n");
 //gets(nomFichier);
 strcpy(nomFichier,"texte.txt");
 
 compteDonnees(nomFichier);
 lirefscanf(nomFichier,&ligneTexte,tabDonnee);
 
 
 return 0;
 
}