"%d",&em[i].num); printf(" 请输入姓名: "); scanf("%s",&em[i].name); getchar(); printf(" 请输入基本工资: "); scanf("%d",&em[i].jbgz); printf(" 请输入职务工资: "); scanf("%d",&em[i].zwgz); printf(" 请输入津贴: "); scanf("%d",&em[i].jt); 10 printf(" 请输入医疗保险: "); scanf("%d",&em[i].yb); printf(" 请输入公积金: "); scanf("%d",&em[i].gjj); em[i].total=((em[i].jbgz)+(em[i].zwgz)+(em[i].jt)-(em[i].yb)-(em[i].gjj));// 计算总工资 printf("\n");// 计算总工资} printf("\n 创建完毕!\n"); save(m);// 保存职工人数 m } void save(int m) /*保存文件函数*/ { int i; FILE*fp; //声明 fp是指针,用来指向 FILE 类型的对象 if ((fp=fopen("clerk_list","wb"))==NULL) //打开职工列表文件为空{ printf ("打开失败\n"); exit(0); } for (i=0;i<m;i++) /*将内存中职工的信息输出到磁盘文件中去*/ if (fwrite(&em[i],sizeof(struct clerk),1,fp)!=1) // 写入数据块&em[i] : 是要输出数据的地址 sizeof(struct clerk) :获取一个单体的长度 1:数据项的个数 fp:目标文件指针 printf(" 文件读写错误\n");