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
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef enum{Non, Oui} Booleen;
typedef struct{
int idEtudiant;
char Civilite;
char prenom[16];
char nom[16];
Booleen Boursier;
int Echelon;
Booleen Handicape;
}Etudiant;
Etudiant LireEtudiant(FILE *flot){
Etudiant a;
fscanf(flot, "%d%c%*c", &a.idEtudiant, &a.Civilite);
fscanf(flot, "%s %s", a.prenom, a.nom);
fscanf(flot, "%d\t%d\t%d", &a.Boursier, &a.Echelon, &a.Handicape);
printf("%s\n", a.prenom);
return a;
}
Etudiant * ChargeEtudiant(int *nb, int *max){
Etudiant *tab, *aux, a;
FILE *flot;
flot= fopen("Etudiants.txt", "r");
if(flot==NULL){
printf("Erreur d'ouverture du fichier.\n");
exit(1);
}
*nb=0;
*max=100;
tab=(Etudiant*) malloc((*max)*sizeof(Etudiant));
if(tab==NULL){
printf("Erreur malloc.\n");
exit(1);
}
a= LireEtudiant(flot);
while(!feof(flot)){
if(*nb==*max){
aux=(Etudiant*) realloc(tab, (*max+100)*sizeof(Etudiant));
if(aux==NULL){
printf("Erreur Realloc.\n");
exit(1);
}
tab=aux;
*max+=100;
}
tab[*nb]= a;
*nb+=1;
a= LireEtudiant(flot);
}
fclose(flot);
free(aux);
return tab;
}
void AfficherEtudiants(Etudiant *tab, int nb){
int i=0;
while(i<nb){
printf("%d\t%c\t%s\t%s", tab[i].idEtudiant, tab[i].Civilite, tab[i].prenom, tab[i].nom);
switch(tab[i].Boursier){
case 1:
printf("\tNon");
break;
case 0:
printf("\tOui");
break;
}
printf("\t%d", tab[i].Echelon);
switch(tab[i].Handicape){
case 1:
printf("\tNon\n");
break;
case 0:
printf("\tOui\n");
break;
}
i+=1;
}
} |
Partager