Bonjour tout le monde,
je suis en train de faire une fonction qui a pour but de charger des informations contenues dans un fichier dans un tableau de pointeurs.
Voila la forme du fichier :
J'ai donc fait ceci :ALBERT Rachel 16.5
BENOIT Alexis 8
DURAND Pierre 18
LAURENT Charles 10
Et là je rencontre plusieurs problèmes :
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 typedef struct { char nom[50], prenom[50]; float moyenne; } Etudiant; int chargeTPointEtud(Etudiant *tpetud[], int nbmax) { FILE *fichier = NULL; Etudiant *etud; int i=1; fichier = fopen("etudalpha.don", "r"); if (fichier == NULL) exit(1); etud = (Etudiant*) malloc(nbmax * sizeof(Etudiant)); fscanf(fichier, "%s%s%f", etud[0]->nom, etud[0]->prenom, &etud[0]->moyenne); tpetud[0] = etud[0]; while (feof(fichier) == 0) { fscanf(fichier, "%s%s%f", etud[i]->nom, etud[i]->prenom, &etud[i]->moyenne); tpetud[i] = etud[i]; i++; } fclose(fichier); return i; }
1) le compilateur me dit : invalid type argument of `->'
J'ai donc remplacé le symbole -> par le symbole .
Ca enlève l'erreur, mais je comprends pas pourquoi : étant donné que etud[0] contient une adresse, on doit mettre la flèche non ?
2) après avoir remplacé les flêches par les points, j'ai une autre erreur : incompatible types in assignment
pour ces lignes :
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part tpetud[0] = etud[0];
la non plus je ne comprends pas : tpetud[0] attends une adresse (puisque c'est un tableau de pointeur) et etud[0] est l'adresse de ma structure (si je me souvient bien)
Code : Sélectionner tout - Visualiser dans une fenêtre à part tpetud[i] = etud[i];
merci d'avance pour vos éclaircissements
Partager