*3. (选做题) 首先创建一个磁盘文件“employee",存放10名职工的数据。每个职
工的数据包括职工姓名、职工性别、年龄、住址、工资、文化程度。再将职工姓名、工资
信息单独抽出另建一个简明的职工工资文件
#include<stdio.h>
int main()
{
struct emp
{
char name[10];
char sex[5];
int old;
char address[30];
float slary;
char culture[10];
}e[10],m[10];
FILE*fp,*fp2;
int i;
for(i=0;i<10;i++)
{
printf("请输入第%d位职工信息\n",i+1);
scanf("%s %s %d %s %f %s",&e[i].name,&e[i].sex,&e[i].old,&e[i].address,&e[i].slary,&e[i].culture);
}//输入数据并存入完整结构体
if((fp=fopen("emoloyee.txt","w+"))==NULL)
{
printf("cannot open emoloyee.txt\n");
return 0;}
for(i=0;i<10;i++)
{
fprintf(fp,"%4s %4s %4d %4s %5.1f %4s\n",e[i].name,e[i].sex,e[i].old,e[i].address,e[i].slary,e[i].culture);
}//将完整数据结构体写入employee.txt
printf("打印成功\n");
fclose(fp);
if((fp2=fopen("D:emoloyee.txt","r+"))==NULL)//注意:此处填写你生成的txt文件的地址,不要照抄
{
printf("cannot open emoloyee.txt\n");
return 0;}
for(i=0;i<10;i++)
{
fscanf(fp,"%s %s %d %s %f %s",&m[i].name,&m[i].sex,&m[i].old,&m[i].address,&m[i].slary,&m[i].culture);
}
printf("读取成功\n");//读取 employee.txt文件中的完整数据并打印以示成功
if((fp2=fopen("emoloyee_part.txt","w+"))==NULL)
{
printf("cannot open emoloyee_part.txt\n");
return 0;}
for(i=0;i<10;i++)
{
fprintf(fp2,"%4s %5.2f\n ",m[i].name,m[i].slary);
}//将部分数据结构体的数据写入文件
printf("打印成功\n");
fclose(fp2);
return 0;
}
注意:读取employee.txt文件时,要填写你自己保存的路径,同时注意要用双反斜线而不是单反斜线,此处已经处理过,不要照搬。
本人大一学生,对C语言了解有限。有不正确的,繁琐的地方,还请大家指导,理解。