二进制文件的读写

二进制文件的读写:

 

#include<stdio.h>

#include<string.h>

/*通讯录结构定义*/

int n=0;

struct friends_list{

char name[10];          /* 姓名 */

int age;                /* 年龄 */

char telephone[13];      /* 联系电话 */

}friends[50];  

void new_friend();

void show_friend();

int main(void)

{ int choice;  

 do{ printf("手机通讯录功能选项:1:新建 2:显示 0:退出\n");

    printf("请选择功能:"); 

scanf("%d", &choice);

switch(choice)

{ case 1:

    printf("新建联系人信息:");  

    new_friend("f1.dat");break;

case 2:

    printf("显示联系人信息:"); 

    show_friend("f1.dat"); break;

case 0: break;}

}while(choice!=0);

printf("谢谢使用通讯录功能!\n");

return 0;}

/*新建联系人*/

void new_friend(char *filename)

{   struct friends_list f; 

FILE *fp,*p;

    fp=fopen(filename,"ab");

    printf("请输入新联系人的姓名:");

    scanf("%s", f.name);

    printf("请输入新联系人的年龄:");

    scanf("%d", &f.age);

    printf("请输入新联系人的联系电话:");

    scanf("%s", f.telephone);

    fwrite(&f,sizeof(f),1,fp);

    fclose(fp) ;

    p=fopen("f.txt","r");

    fscanf(p,"%d",&n);printf("\n%d",n);

    fclose(p);

n++;

p=fopen("f.txt","w");

fprintf(p,"%d",n); 

    fclose(p);

}

void show_friend(char *filename)

{   int i=0;

    FILE *fp,*p;

p=fopen("f.txt","r");

    fscanf(p,"%d",&n);

    fclose(p);

    fp = fopen(filename, "rb");

     printf("\nname       age  telephone\n");

   while(i<n)

  {  fread(&friends[i],sizeof(struct friends_list),1,fp);

     printf("%-10s %3d %-13s\n",friends[i].name ,friends[i].age,friends[i].telephone);i++;}

      fclose(fp) ;

 

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值