/* 3. 将10名职工的数据从键盘输入, 然后送入磁盘文件worker1. rec 中保存。 设职工数据包括:职工号、职工名、性别、年龄、工资,再从磁盘调入这些数据, 依次打印出来(用 fread和fwrite函数)。 */ #include <stdio.h> #include <stdlib.h> typedef struct Staff_9_3 { int num; char name[30]; char sex[5]; int age; float salary; } Employee; /* 保存员工信息 */ void saveInfo93(Employee * emp,int n) { FILE *fp = NULL; fopen_s(&fp, "worker1.rec","wb"); if (fp) { for (int i = 0; i < n; i++) { fwrite(&emp[i],sizeof(emp[i]),1,fp); } fclose(fp); } else { printf("open file failed!"); } } /* 读取员工信息 */ void readInfo93() { FILE *fp = NULL; Employee tempEmp; fopen_s(&fp, "worker1.rec","rb"); if (fp) { fread(&tempEmp,sizeof(tempEmp),1,fp); while(!feof(fp)) { printf("num = %d,name = %s,sex = %s,age = %d,salary = %f\n", tempEmp.num,tempEmp.name,tempEmp.sex,tempEmp.age,tempEmp.salary); fread(&tempEmp,sizeof(tempEmp),1,fp); } fclose(fp); } else { printf("open file failed!"); } } void main() { const int N = 10; Employee emp[N]; for (int i = 0; i < N; i++) { printf("请输入第%d员工的姓名:\n",(i + 1)); scanf_s("%s",&(emp[i].name)); printf("请输入第%d员工的性别:\n",(i + 1)); scanf_s("%s",&(emp[i].sex)); printf("请输入第%d员工的编号:\n",(i + 1)); scanf_s("%d",&(emp[i].num)); printf("请输入第%d员工的年龄:\n",(i + 1)); scanf_s("%d",&(emp[i].age)); printf("请输入第%d员工的工资:\n",(i + 1)); scanf_s("%f",&(emp[i].salary)); } saveInfo93(emp,N); readInfo93(); system("pause"); }
由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:
1)新建工程
2)选择工程
3)创建完工程如下图:
4)增加文件,右键点击项目
5)在弹出菜单里做以下选择
6)添加文件
7)拷贝代码与运行
解压密码:c.itcast.cn