#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct Employee
{
char num[6];
char name[10];
char sex[2];
int age;
char addr[20];
int salary;
char health[8];
char cla[10];
}em[10];
struct Emp
{
char name[10];
int salary;
}em_case[10];
int main()
{
FILE* fp1, * fp2;
errno_t err1, err2;
int i, j = 0;
if (err1 = fopen_s(&fp1, "employee", "r"))
{
printf("can not open file.\n");
exit(0);
}
printf("\n NO. name sex age addr salary health class\n");
for (i = 0; fread(&em[i], sizeof(struct Employee), 1, fp1) == 1; i++)
{
printf("%4s %8s %4s %6d %10s %6d %10s %8s\n", em[i].num, em[i].name, em[i].sex, em[i].age, em[i].addr, em[i].salary, em[i].health, em[i].cla);
//strcpy_s(em_case[i].name,strlen(em[i].name)+1 ,em[i].name);
while (em[i].name[j] != '\0')
{
em_case[i].name[j] = em[i].name[j];
j++;
}
em_case[i].name[j] = '\0';
em_case[i].salary = em[i].salary;
}
printf("\n\n********************************************");
if (err2 = fopen_s(&fp2, "emp_salary", "w"))
{
printf("can not open file.\n");
exit(0);
}
for (j = 0; j < i; j++)
{
if (fwrite(&em_case, sizeof(struct Emp), 1, fp2)!=1)
printf("error.\n");
printf("\n %12s %10d", em_case[i].name, em_case[i].salary);
}
printf("\n********************************************");
fclose(fp1);
fclose(fp2);
return 0;
}
谁知道这是什么原因?