Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct personne personne;
- struct personne
- {
- char nom[10];
- char prenom[10];
- int tel;
- };
- /*void ajout_personne(FILE *rep)
- {
- personne p;
- printf("Donner le nom de la personne\n");
- scanf("%s",p.nom);
- printf("Donner le prenom de la personne\n");
- scanf("%s",p.prenom);
- printf("Donner le numero de telephone de la personne\n");
- scanf("%d",&p.tel);
- fprintf(rep, "Le nom est :%s \nLe prenom est :%s \nTelephone est :%d\n",p.nom,p.prenom,p.tel);
- }*/
- void ajout_bin(FILE *rep)
- {
- fseek(rep,0,SEEK_END);
- personne p;
- printf("Donner le nom de la personne\n");
- scanf("%s",p.nom);
- printf("Donner le prenom de la personne\n");
- scanf("%s",p.prenom);
- printf("Donner le numero de telephone de la personne\n");
- scanf("%d",&p.tel);
- fwrite(&p,sizeof(personne),1,rep);
- }
- void affiche(FILE *rep)
- {
- fseek(rep,0,SEEK_END);
- float x;
- x=ftell(rep);
- int i,j;
- i=(int)x/sizeof(personne);//To get the nbre of memory blocks to allocate.
- personne *p;
- p=malloc(i*sizeof(personne));
- rewind(rep);
- fread(p,sizeof(personne),i,rep);
- for(j=0;j<i;j++)
- printf("Nom : %s\nPrenom : %s \nTel %d \n",p[j].nom,p[j].prenom,p[j].tel);
- free(p);
- }
- void changer_numero(FILE **rep,char *Nom)
- {
- fseek(*rep,0,SEEK_END);
- float x;
- x=ftell(*rep);
- int i,j;
- i=(int)x/sizeof(personne);
- personne *p;
- p=malloc(i*sizeof(personne));
- rewind(*rep);
- x=fread(p,sizeof(personne),i,*rep);
- for(j=0;j<i;j++){
- if(!strcmp(p[j].nom,Nom)){
- printf("Donner le nouveau numero.\n");
- scanf("%d",&(p+j)->tel);
- break;//premier seulement
- }
- }
- fclose(*rep);
- *rep=fopen("base.dat","wb");
- fwrite(p,sizeof(personne),i,*rep);
- free(p);
- }
- int main()
- {
- FILE *b;
- /* b=fopen("base.dat","w");
- fclose(b);*/
- b=fopen("base.dat","ab+");
- ajout_bin(b);
- affiche(b);
- changer_numero(&b,"ilyes");
- fclose(b);
- b=fopen("base.dat","ab+");
- affiche(b);
- fclose(b);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment