TC2.0我创建了文件,为什么我用另一个程序打开时却显示打不开呢??

来源:百度知道 编辑:UC知道 时间:2024/06/08 16:24:31
程序如下:
#include "stdio.h"
void main()
{struct employ
{int num;char name[10];char sex;int age;int sla;}person[2];
int i;FILE *fp;
fp=fopen("woker.rec","wb");
if(fp==NULL)
{printf("shibai");
exit(0);}
printf("input:num name sex age sla \n");
for(i=0;i<2;i++)
scanf("%d%s%s%d%d",&person[i].num,person[i].name,&person[i].sex,&person[i].age,&person[i].sla);
for(i=0;i<2;i++);
fwrite(&person[i],sizeof(struct employ),1,fp);
fclose(fp);
}
在磁盘中建立一个文件,储存职工的工号,姓名,性别,年龄和工资;之后运行:
#include "stdio.h"
void main()
{FILE *fp;int i;
struct employ
{int num;char name[10];char sex;int age;int sla;}person[2];
fp=fopen("worker.rec","rb");
if(fp==NULL)
{printf("shibai");
exit(0);}
for(i=0;i<2;i++)
{fread(&person[i],sizeof(struct employ),1,fp);
printf("%d%

scanf("%d%s%s%d%d",&person[i].num,person[i].name,&person[i].sex,&person[i].age,&person[i].sla);

printf("%d%s%s%d%d",person[i].num,person[i].name,person[i].sex,person[i].age,person[i].sla);}

写入时己经出错了,你的char sex是字符而不是字串,

要么把char sex改成char sex[2];

要么把scanf("%d%s%s%d%d",&person[i].num,person[i].name,&person[i].sex,&person[i].age,&person[i].sla);

改成scanf("%d%s%c%d%d",&person[i].num,person[i].name,&person[i].sex,&person[i].age,&person[i].sla); 

你运行下面的代码就知了:

#include "stdio.h"

void main()

{struct employ

{int num;char name[10];char sex;int age;int sla;}person[2];

int i;

printf("input:num name sex age sla \n");

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

scanf("%d%s%s%d%d",&person[i].num,person[i].name,&person[i].sex,