首页 > 试题广场 >

有一磁盘文件“employee”,内存放职工的数据。每个职工

[问答题]

有一磁盘文件“employee”,内存放职工的数据。每个职工的数据包括职工姓名、职

工号、性别、年龄、住址、工资、健康状况、文化程度。今要求将职工名、工资的信息单独抽出来另建一个简明的职工工资文件。从“职工工资文件”中删去一个职工的数据,再存回原文件。

推荐

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

struct emploee

{char  name[10];

int  salary;

}emp[20];


int main()

{FILE*fp;

int i,j,n,flag;

char name[10];

if((fp=fopen("emp_salary","rb"))==NULL)

{printf("can not open file.\n");

exit(0);

}

printf("\noriginal data:\n");

for(i=0;freadd(&emp[i],sizeof( struct emploee),1,fp)!=0;i++)

printf("\n  %8s  %7d",emp[i].name,emp[i].salary);

fclose(fp);

n=i;

printf("\ninput name deleted\n");

scarf("%s",name);

for(flag=1,i=0;flag&&i<n;i++)

{if(stromp(name,emp[i].name)==0)

{for(j=i;j<n-1;j++)

{strcpy(emp[j].name,emp[j+1].name);

emp[j].salary=emp[j+1].salary.

}

flag=0;

}

}

if(!flag)

n=n-1;

else

printf("\nnot found!");

printf("\nNow,The content of file:\n”);

if((fp=fopen("emp_salary","wb”))==NULL)

{printf("can not open file\n'");

exit(0);

}

for(i=0;i<n;i++)

fwrite(&emp[i],sizeof(struct emploee),1,fp);

fclose(fp);

fp=fopen("emp_salary","r”);

for(i=0;fread(&emp[i],sizeof( struct emploee),1,fp)!=0;i++)

printf("\n%8s  %7d",emp[i].name,emp[i].salary);

printf("\n");

fclose(fp);

return 0;

}


编辑于 2018-03-25 10:27:51 回复(0)