Bonjour!

J'ai vraiment reelement besoin de votre aide. Je parcours votre forum depuis deja un sacre bout de temps en y trouvant beaucoup de réponses a mes questions, mais la, je seche...

J'essaye de copier des champs d'une liste chainée vers une structure, mais impossible!!
Une erreur C2275 : Illegal use of this type as an expression


Voila le code entier.

Ce n'est qu'a la fin ou je bloque. Je suis pas vraiment un Dieu en programmation alors désolé si je m'exprime mal...



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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
#include <stdio.h>
#include <malloc.h> //Bibliothéque nécessaire pour la gestion dynamique de la mémoire
#include <string.h>
 
typedef struct personne
{
	int num;
	char nom[20];
	char prenom[20];
	char ville[20];
	int code;
	float taille;
	struct personne *suivant;
}pers;
 
 
 
typedef struct personne_inf160
{
	int num;
	char nom[20];
	char prenom[20];
	char ville[20];
	int code;
	float taille;
	struct personne_inf160 *suivant;
}pers_inf160;
 
 
 
typedef struct personne_sup160
{
	int num;
	char nom[20];
	char prenom[20];
	char ville[20];
	int code;
	float taille;
	struct personne_sup160 *suivant;
}pers_sup160;
 
 
 
 
void visu(pers PP)
{
	printf("\n Nom de la personne:%s",PP.nom);
	printf("\n son Prenom:%s",PP.prenom);
	printf("\n Son Numero de francais:%d",PP.num);
	printf("\n Nom de sa ville de residence:%s",PP.ville);
	printf("\n Code postal de cette ville:%d",PP.code);
	printf("\n Taille:%d\n\n",PP.taille);
	return ;
}
 
 
 
void crea(pers *nompers)  
{
		printf("\n\nEntrer le numero de Francais : ");
		scanf("%d",&nompers->num);  
		fflush(stdin);
		printf("Entrer nom : ");
		scanf("%s",&nompers->nom);	//le nom du nompers choisi sera range dans son propre dossier.
		fflush(stdin);
		printf("Entrer Prenom : ");
		scanf("%s",&nompers->prenom);
		fflush(stdin);
		printf("Entrer ville de residence : ");
		scanf("%s",&nompers->ville);
		fflush(stdin);
		printf("Entrer le code postal : ");
		scanf("%d",&nompers->code);
		fflush(stdin);
		printf("Entrer la taille : ");
		scanf("%f",&nompers->taille);
}
 
 
void main()
{
	FILE *FE;                                      //pointeur vers Fichier Entree, Sortie, de Verification
	FILE *FS;
 
	pers *debutliste=NULL;
	pers *TL;
	pers *p;
 
 
	int i,j,k=0;
	char C=0,reponse;
 
	char NFE[255];
	char NFS[255];
 
 
	pers* resultat=NULL; // resultat 
	pers* resultat_p=NULL; // etat precedent du pointeur
 
	pers_inf160 *ptr_inf160=NULL;
	pers_sup160 *ptr_sup160=NULL;
 
 
//Ouverture fichier
do
{
	printf("Saisir le nom complet (avec arborescence) du fichier :\n");
	gets(NFE);
 
FE=fopen(NFE,"r");
	if(FE==NULL)                                 //boucle de verification de fichier existant
		printf("ERREUR fichier inexistant\n");
	else
	{
		printf("Ouverture du fichier %s \n",NFE);
		while(C!=EOF)
		{
			C=getc(FE);					//FAIRE : c récupere le caractere..
			printf("%c",C);
		}
	}
 
}while(FE==NULL);                             // boucle de verification de fichier ouvert
 
 
//Remplissage liste chainee
FE=fopen(NFE,"r");
for(i=0;k!=EOF;i++)
{
	p=(personne *)malloc(sizeof(personne));
	k=fscanf(FE,"%d\t%s\t%s\t%s\t%d\t%f\n",&p->num,p->nom,p->prenom,p->ville,&p->code,&p->taille);
	p->suivant=debutliste;
	TL=p;
	debutliste=TL;
}
 
TL=TL->suivant;
 
//Ajout de personne
do
{
	do
	{                  //boucle d'ajout de personne
		printf("\nDesirez-vous creer une autre personne? \nSaisir O ou o pour oui ou N ou n pour non :");
		fflush(stdin);
		scanf("%c",&reponse);
 
	}while(reponse!='O' && reponse!='o' && reponse!='N' && reponse!='n');
 
 
	if(reponse=='O' || reponse=='o' && i<451)    // boucle de creation de personne
	{
		crea(TL);                       // creation de personne grace a la fonction crea
		i++;
	}
	else 
	{
		fclose(FE);
	}
 
}while(reponse=='O' || reponse=='o');
 
 
// Difference de taille
 
 
while(TL!= NULL)    // Boucle d'analyse complete de la liste
{
	if(TL->taille < 160)
	{                 
		pers_inf160.num  = TL->num;		
		strcpy(pers_inf160.nom , TL->nom);
		strcpy(pers_inf160.prenom , TL->prenom);
		strcpy(pers_inf160.ville , TL->ville);
		pers_inf160.code = TL->code;
		pers_inf160.taille = TL->taille;
 
		//ptr_inf160->suivant=pers_inf160;
	}
 
 
	else
	{
		ptr_sup160->num  = TL->num;
		strcpy(ptr_sup160->nom , TL->nom);
		strcpy(ptr_sup160->prenom , TL->prenom);
		strcpy(ptr_sup160->ville , TL->ville);
		ptr_sup160->code = TL->code;
		ptr_sup160->taille = TL->taille;
 
		//ptr_sup160=ptr_sup160->suivant;
 
	}
 
	TL=TL->suivant;
}