Mdifier une ligne d'un fichier texte
mast20
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
-
mast20 Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
mast20 Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
Bonjour, si quelq'un peut me corriger les fautes . ecrire une fonction qui modifie le titre d un projet (le projet est une structure caractérisé par code étudiant ,nom,titre de projet)
typedes struct
{ int code ;
char nom [20];
char titre [20];
}prj;
voici ce que j ai ecrit :
int modificationtitre(int code)
{FILE *f=NULL ; prj x;
f=fopen("pf.bin","rb");
if(f==NULL)
{printf("erreur");exit(1);}
fread(&x,sizeof(prj),1,f)
do
{if(c==x.code)
{
printf("entrer le nouveau titre");
gets(x.titre);
fseek(f,sizeof(prj),SEEK_CUR);
fwrite(&x,sizeof(prj),1,f);
return 0;\\ modification est faite\\
fread(&x,sizeof(prj),1,f);
}while(!feof(f));
fclose(f)
return -1;\\modification n est pas faite\\
}
typedes struct
{ int code ;
char nom [20];
char titre [20];
}prj;
voici ce que j ai ecrit :
int modificationtitre(int code)
{FILE *f=NULL ; prj x;
f=fopen("pf.bin","rb");
if(f==NULL)
{printf("erreur");exit(1);}
fread(&x,sizeof(prj),1,f)
do
{if(c==x.code)
{
printf("entrer le nouveau titre");
gets(x.titre);
fseek(f,sizeof(prj),SEEK_CUR);
fwrite(&x,sizeof(prj),1,f);
return 0;\\ modification est faite\\
fread(&x,sizeof(prj),1,f);
}while(!feof(f));
fclose(f)
return -1;\\modification n est pas faite\\
}
A voir également:
- Mdifier une ligne d'un fichier texte
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
1 réponse
Bonjour,
Pour pouvoir modifier un fichier binaire, il faut l'ouvrir en "r+b" plutôt qu'en "rb".
Pour 'reculer' d'un bloc, il faut faire fseek(f,-sizeof(prj),SEEK_CUR); plutôt que fseek(f,sizeof(prj),SEEK_CUR);
Avant de faire return 0; il est hautement conseillé de fermer le fichier.
Il manque une accolade fermante après le return 0;
Il manque des points-virgules.
Pour pouvoir modifier un fichier binaire, il faut l'ouvrir en "r+b" plutôt qu'en "rb".
Pour 'reculer' d'un bloc, il faut faire fseek(f,-sizeof(prj),SEEK_CUR); plutôt que fseek(f,sizeof(prj),SEEK_CUR);
Avant de faire return 0; il est hautement conseillé de fermer le fichier.
Il manque une accolade fermante après le return 0;
Il manque des points-virgules.
mast20
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
merci