#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <dir.h>
#include <dos.h>
typedef struct
{
int Numero; /* Un champs */
char Nom[20];
char Prenom [20];
}eleve;
eleve tab[50];
/* Programme Principal */
void main ()
{
int i, n=0;
chargement (tab,&n);
printf("entrer un numero ou 0 pour finir: ");
scanf("%d",&tab[n].numero);
while(tab[n].numero != 0)
{
printf("entrer un nom:");
fflush(stdin);
fgets(tab[n].nom, 50, stdin);
tab[n].nom[strlen(tab[n].nom) -1]='\0';
printf("entrer un prenom:");
fgets(tab[n].Prenom, 50, stdin);
tab[n].prenom[strlen(tab[n].prenom) -1]='\0';
n++; /* n++ est équivalent à n = n + 1 */
printf("entrer un numero ou 0 pour finir: ");
scanf("%d",&tab[n].numero);
}
memorisation(tab,n);
}
void memorisation(eleve tableau[50], int nombre)
{ int i;
eleve one;
FILE *fp;
fp=fopen("eleves.dat","w");
if( fp == null )
printf'"ouverture du fichier impossible");
else
{
fread(&nombre, 2, 1, fp);
for( i = 0 ; i < nombre ; i++)
/* i++ est équivalent à i = i + 1 */ {
fwrite(&one.Numero, 2, 1, fp);
fwrite(&one.Nom, 20, 1, fp);
fwrite(&one.Prenom, 20, 1, fp);
}
}
fclose(fp);
}
void chargement(eleve *tableau[50], int *nombre) {
FILE *fp;
fp = fopen("eleves.dat", "r");
if ( fp == NULL )
print("ouverture du fichier impossible");
else
{
fread(nombre, 2, 1, fp);
for( i = 0 ; i < nombre ; i++)
/* i++ est équivalent à i = i + 1 */ {
fread(&one.Numero, 2, 1, fp);
fread(&one.Nom, 20, 1, fp);
fread(&one.Prenom, 20, 1, fp);
}
}
fclose(fp);
}
S'il y a certaines parties de mon code que tu n'a pas compris, n'hésites pas à laisser un message sur le forum. Je te répondrais.