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)到底有什么用;可是去除后对程序并不影响啊。 展开
这个程序中
#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)到底有什么用;可是去除后对程序并不影响啊。 展开
展开全部
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;
}
struct employee emp是一个新结构体,这个函数将用户录入的一员工信息记录保存到这个emp变量中,fopen("employee.txt","ab+")打开文件employee.txt,"ab+"是向文件中最后追加一条记录方式,fwrite把变量emp在文件最后添加一条记录写入
rewind(fp)是将文件指针定位到文件开始位置,即文件的第一条记录开始位置
追问
就是这样追加到文件后,但是这个新增的内容是怎么加入最先定义的结构体数组中并成为其中一员。。2.最后为什么要将指针到文件的开始。
追答
没有更新全局变量结构体内容,只将添加记录写入文件,显示函数会重新读一次,更新全局变量结构体内容
一般文件操作完成,把指针定位到开始位置,如果后面关闭文件指针可以不用这条语句也可以
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询