Supression d'un contact en C

Fermé
tamaiste Messages postés 4 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 12 octobre 2007 - 12 oct. 2007 à 22:43
 Marc - 12 oct. 2007 à 23:08
Bonjour,

je suis en informatique de reseaux (BTS) et je m'interesse de pres au devellopement mais je debute seulement (2 semaines de pratique seulement)...

j'ai ecri cette fonction d'entier :

int supprimer()
{
int compteur;
FILE *F1;
FILE *F2;
int a,choix;
compteur=0;
F1=fopen("contacts.txt","rb");
while(!feof(F1))
{
fread(&perso , sizeof(perso) , 1 , F1);
compteur=compteur+1;
if(!feof(F1))
printf("\n \n%d %s %s",compteur , perso.nom , perso.prenom);
}
printf("\n \nQuel contact souhaitez vous supprimer :");
scanf("%d",&choix);
fclose(F1);
F2=fopen("repertoire.txt","wb");
F1=fopen("contacts.txt","rb");
while(!feof(F1))
{
fread(&perso , sizeof(perso) , 1 , F1);
compteur=compteur+1;
if(compteur!=choix)
{
fwrite(&perso , sizeof(perso) , 1 ,F2);
}
}
fclose(F1);
fclose(F2);
getch();
menu();
}


Je veux renommer mon F2 en F1 pour pouvoir supprimer un contact dans mon repertoire...
je sais que la fonction rename existe mais j'ai beau essayer dans tout les sens je n'y arrive pas...

Quelqu'un pourrait t-il m'aider SVP

1 réponse

Bonjour,

Je te propose d'utiliser une procédure qui copie le fichier caract par caract, dans le style de celle la :

void copierContenu (char *filenameSrc, char *filenameDst)
{
FILE *fileSrc=fopen(filenameSrc, "rb");
FILE *fileDst=fopen(filenameDst, "wb");

int caractere;
while (!feof(fileSrc))
{
caractere = fgetc(fileSrc);
putc(caractere, fileDst);
}

fclose(fileSrc);
fclose(fileDst);
}

(attention, procédure non testée)
0