Salut je voudrais pourvoir modifier des données dans mon TP en C mais ça marche pas.
void modifeleve()
{
int nb,num,taille,pos,rep;
seleve eleve;
FILE *f;
system("cls");
printf("MODIFICATION D'UN ELEVE\n\n");
printf("Voici les eleves enregistres dans le fichier %s\n\n",fic);
nb=afficheeleve();
f=fopen(fic,"r");
fseek(f, 0,SEEK_END);//SEEK_END fait positionnner le pointeur à la fin donc on met 0
taille=ftell(f);
printf("Entrez le numero de l'eleve a modifier: ");
scanf("%d",&num);
pos=( sizeof(eleve)*(num-1) );//on met num-1 car ça commence à 0
while(num<1 || pos>=taille)
{
printf("\nNumero inexistant, recommencez svp :");
flushall();
scanf("%d",&num);
pos=( sizeof(eleve)*(num-1) );//on met num-1 car ça commence à 0
}
fseek(f,pos,SEEK_SET);
fread(&eleve,sizeof(eleve),1,f);
printf("\n\n\nVous avez choisi de modifier %s %s",eleve.nom,eleve.prenom);
printf("\n\n1) Modifier son nom");
printf("\n2) Modifier son prenom");
printf("\n3) Modifier son classe");
printf("\n4) Modifier ses retards");
printf("\n5) Modifier ses abscences");
printf("\n6) Modifier ses retenues");
printf("\n\nVotre choix :");
scanf("%d",&rep);
if(rep==1)
{
printf("Entrez le nouveau nom :");
flushall();
gets(eleve.nom);
printf("\nLe nouvo nom est %s",eleve.nom);
}
fseek(f,pos,SEEK_SET);
fwrite(&eleve,sizeof(eleve),1,f);
fclose(f);
printf("Pressez une touche pour continuez ...");
//printf("\nIl y a %d eleves",nb);
getch();
menuauth();
}
Qqn peut me dire ou ça va pas ?