C语言结构体数组

http://www.21shipin.com/html/61739.shtml这个程序中#include<stdio.h>#include<string.h>#incl... http://www.21shipin.com/html/61739.shtml
这个程序中
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <conio.h>#define N 100
typedef struct employee//职工基本情况{ int num;//工号 int position;//职位1为董事长2为总经理3为副总经理等 char name[8];//姓名 char sex[2];//性别f为女m为男 int age;//年龄 int cult;//文化程度1为专家2为博士3为硕士4为学士5为其他 int salary;//工资 int state;//健康情况分为good,general,bad char day[10];//工作年月}ro;ro em[N];
………………………………

void add()//追加一个职工信息{ struct employee emp; FILE *fp; int i=0; if((fp=fopen("employee.txt","ab+"))==NULL) { printf("不能够打开这个文件\n"); getch(); return; } printf("请你输入新人的内容:\n"); printf("请你输入工号:\n");//输入工号 scanf("%d",&emp.num); printf("请你输入职位:\n");//输入职位printf("………………")
fwrite(&emp,sizeof(struct employee),1,fp); rewind(fp); printf("插入完毕,按任意键返回\n"); getch(); total=total+1; fclose(fp); return;}
这个函数为了增添成员,新建了个结构体变量struct employee emp,然后存入文件。那么这个新存入的结构体数据是如何加入原来的结构体数组中。
2.函数中的rewind(fp)到底有什么用;可是去除后对程序并不影响啊。
展开
 我来答
星语nfKI6
推荐于2016-02-18 · TA获得超过164个赞
知道小有建树答主
回答量:197
采纳率:100%
帮助的人:114万
展开全部
void add()//追加一个职工信息

{

 struct employee emp;

 FILE *fp;

 int i=0;

 if((fp=fopen("employee.txt","ab+"))==NULL)

 {

  printf("不能够打开这个文件\n");

  getch();

  return;

 }

 printf("请你输入新人的内容:\n");

 printf("请你输入工号:\n");//输入工号

 scanf("%d",&emp.num);

 printf("请你输入职位:\n");//输入职位

 printf("1董事长     2总经理    3副总经理\n");

 printf("4部门经理   5工程师    6秘书\n");

 printf("7技术员     8领班      9员工\n");

 scanf("%d",&emp.position);

 printf("请你输入姓名:\n");//输入姓名

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

 printf("请你输入性别以(m男f女):\n");//输入性别

 scanf("%s",emp.sex);

 printf("请你输入文化程度:\n");//输入文化程度

 printf("1专家   2博士  3硕士  4学士  5其他\n");

 scanf("%d",&emp.cult);

 printf("请你输入工资:\n");//输入工资

 scanf("%d",&emp.salary);

 printf("请你输入身体情况:\n");//身体情况

 printf("1好  2一般  3差\n");

 scanf("%d",&emp.state);

 printf("请你输入工作年月:\n");

 scanf("%s",emp.day);

 fwrite(&emp,sizeof(struct employee),1,fp);

 rewind(fp);

 printf("插入完毕,按任意键返回\n");

 getch();

 total=total+1;

 fclose(fp);

 return;

}
  1. struct employee emp是一个新结构体,这个函数将用户录入的一员工信息记录保存到这个emp变量中,fopen("employee.txt","ab+")打开文件employee.txt,"ab+"是向文件中最后追加一条记录方式,fwrite把变量emp在文件最后添加一条记录写入

  2.  rewind(fp)是将文件指针定位到文件开始位置,即文件的第一条记录开始位置

追问
就是这样追加到文件后,但是这个新增的内容是怎么加入最先定义的结构体数组中并成为其中一员。。2.最后为什么要将指针到文件的开始。
追答
  1. 没有更新全局变量结构体内容,只将添加记录写入文件,显示函数会重新读一次,更新全局变量结构体内容

  2. 一般文件操作完成,把指针定位到开始位置,如果后面关闭文件指针可以不用这条语句也可以

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式