Fonction supprime tous!!

juju0612 Messages postés 19 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 24 août 2008 - 23 août 2008 à 22:16
juju0612 Messages postés 19 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 24 août 2008 - 24 août 2008 à 10:57
bonjour à tous!!!
voila ma fonction supprimer doit supprimer que le nom que je lui donne mais il supprime tous!!et je ne vois pas pourquoi!!

comment ressoudre cela!! merci d'avance

      printf("\nNom a supprimer : ");
      scanf(" %s",n);                                                            //donc je demande le nom a supprimer
      fread(&fiche,sizeof(struct enreg),1,f);


      while(!feof(f) && ok==0)
      {
       if(strcmpi(fiche.nom,n)==0)
         {
         printf("\nnom : %s",fiche.nom);
       printf("\nprenom : %s",fiche.prenom);                              //ici je le cherche et affiche trois info
       printf("\nposte : %s",fiche.poste);
            printf("\nConfirmer la suppression (o/n) ? : ");
            scanf(" %c",&rep);                                                       //je confirme
            fflush(stdin);


            if(rep=='O' || rep=='o')
            {
             sw=1;
               ok=1;
               code=fiche.nom;
               tp=fopen("temp.dat","wb");
               rewind(f); //par aller vers le debut du fichier
               fread(&fiche,sizeof(struct enreg),1,f);
               while(!feof(f))
               {
                if(strcmp(code,fiche.nom)!=0)
                  {
                   fwrite(&fiche,sizeof(fiche),1,tp);     //ecrit tous les enregistrements dans le fichier temp.dat sauf celui choisi
                  }
                  fread(&fiche,sizeof(fiche),1,f);          //mais ici a place de supprimer que le nom voulu il supprime tous
               }
            }
            else
             sw=1;


         }
         fread(&fiche,sizeof(fiche),1,f);
      }
      if(ok==1)
      {
       fclose(tp);
         fclose(f);
         remove("joueurs.dat");
         rename("temp.dat","joueurs.dat");

1 réponse

juju0612 Messages postés 19 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 24 août 2008 1
24 août 2008 à 10:57
ouais c bon nickel
il faut faire code=n et pas code=fiche.nom

a++
0
Rejoignez-nous