Supression d'un contact en C

tamaiste Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
 Marc -
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
A voir également:

1 réponse

Marc
 
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