remplir un tableau de structure via une fonction
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:
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:
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;
} |