Bonsoir tout le monde
j'ai besoin de votre aide s il vous plait , je viens de faire un programme qui rempli un fichier par les informations d un etudiant sous la forme nom : prenom : cne : age
faut ecrire :
une fonction qui saisir les données d un etudiant
une fonction qui afficher ...
une fonction qui recherche un etudiant par cne
une fonction qui supprime un etudiant par cne
programme proncipal
Cliquez pour afficherCode:#include<stdio.h> #include<stdlib.h> #include<conio.h> #include<string.h> //fonction qui saisi les dinnees d un etudiant void saisir() { //declaration du fichier FILE*fichier; //declaration des autres variables char nom[30],prenom[30]; int i,cne ,age,n; //ouverture du fichier fichier = fopen("etudiant.txt","w"); //teste d ouverture du fichier en ecriture //si le fichier ne s ouvre pas if(fichier==NULL) //on affiche un message d erreur { printf(" impossible d ouvrir le fichier "); exit (0); } else{ printf("******\t\tveuillez donner le nombre des etudiants****** :"); scanf("%d",&n); for(i=0;i<n;i++) { printf("******\t\tle nom de l etudiant est ******:\n"); scanf("%s",nom); printf("*******\t\tle prenom de l etudiant est ******:\n"); scanf("%s",prenom); printf("*******\t\tle cne de l etudiant est *******:\n"); scanf("%d",&cne); printf("*******\t\tl age de l etudiant est *******:\n"); scanf("%d",&age); }fprintf(fichier,"%s:%s:%d:%d",nom,prenom,cne,age);} fclose(fichier); } //affichage du fichier void afficher () { //declaration du fichier FILE*fichier; //declaration des autres variables char nom[30],prenom[30]; int cne ,age; //ouverture du fichier fichier = fopen("etudiant.txt","r"); //teste d ouverture du fichier en ecriture //si le fichier ne s ouvre pas if( fichier==NULL) //on affiche un message d erreur printf(" impossible d ouvrir le fichier "); else{ //tant qu on a pas atteint la fin du fichier while(feof(fichier)==0) { //on lit dans le fichier fscanf(fichier,"%s%s%d%d",nom,prenom,&cne,&age); printf("%s : %s : %d : %d",nom,prenom,cne,age); } }fclose(fichier);} //fonction qui recherche un etudiant selon son cne void rechercher () { //declaration du fichier FILE*fichier; //declaration des autres variables char nom[30],prenom[30]; int cne ,age,bol=0; int cner;//cne de l etudiant qu on cherche //ouverture du fichier fichier = fopen("etudiant.txt","r"); //teste d ouverture du fichier en ecriture //si le fichier ne s ouvre pas if( fichier ==NULL) //on affiche un message d erreur printf(" impossible d ouvrir le fichier "); else{ printf(" entrer le cne de l etudiant a chercher :"); scanf("%d",&cner);//tant qu on a pas atteint la fin du fichier while(feof(fichier)==0) { fscanf(fichier,"%s%s%d%d",nom,prenom,&cne,&age); if(cne==cner) { bol=1; printf("le cne de l etudiant qu on cherche est %d",cne); printf("%s:%s:%d:%d",nom,prenom,cne,age); } } if(bol==0) printf(" ERREUUUUUUUUUR ETUDIANT INTROUVABLE "); }fclose(fichier); } //suppression d un etudiant par cne void supprimer () {//declaration de l ancien fichier FILE*fichier; //declaration du nouveau fichier FILE*outfile; //declaration des autres variables char nom[30],prenom[30]; int cne ,age,bol=0,cner; //ouverture de l ancien fichier en lecture fichier = fopen("etudiant.txt","r"); //ouverture du nouveau fichier en eciture outfile = fopen("etudiant.tmp","w"); //teste d ouverture des deux fichier fichier //si le fichier ne s ouvre pas if( fichier ==NULL) //on affiche un message d erreur { printf(" impossible d ouvrir le fichier "); exit ( 0); } else if( outfile ==NULL) //on affiche un message d erreur { printf(" impossible d ouvrir le fichier "); exit ( -1); } else{ //tant qu on a pas atteni la fin du fichier while(!feof(fichier) ) { fscanf(fichier,"%s%s%d%d",nom,prenom,&cne,&age); if( cne!=cner) fprintf(outfile,"%s:%s:%d:%d",nom,prenom,cne,age); else bol=1; } //fermeture de l ancien fichier fclose(fichier); //fermeture du nouveau fichier fclose(outfile); remove ("fichier");//suppression de l ancien fichier rename("etudiant.tmp","etudiant.txt");//on renome le nouveau fichier par le nom du fichier original if(bol==0) printf("ERREUUUUUUUUUUR ETUDIANT INTROUVABLE"); }} char menu() { printf("\n*********\t\t PROGRAMME D ETUDIANT ************\n"); printf("\t\ttaper a pour saisir\n"); printf("\t\ttaper b pour afficher\n "); printf("\t\ttaper c pour rechercher un etudiant\n"); printf("\t\ttaper d pour supprimer un etudiant\n "); printf("\t\ttaper q pour quitter\n"); fflush(stdin); return getchar();} main(){ char c; do{ c=menu(); switch(c) { case 'a': saisir (); break; case 'b': afficher(); break; case 'c': rechercher (); break; case 'd': supprimer(); break; case'q':exit(0); break; default: printf("taper votre choix:"); break ; }}while(c!='q'); getch(); return 0; }
au niveau de la fonction saisir () et quitter il n y a pas de probleme mais au niveau de la fonction afficher () il affiche les resultats que j ai tapé mais il m ajoute une ecriture bizzar
meme chose pour la fonction rechercher ca donne toujours "ETUDIANT INTROUVALBE"
pourriez vous m aider ?!
merci d avance de m avoir aidé
-----