这是我的那个结构体:
int N=2;
const int M=100;
struct members
{
char name[10];
char sex[5];
int money;
int member;
}mem[M];
这是我的删除模块:
/*增加信息模块*/
void add()
{
FILE *fp;
char a[10],b[5];
int money,member;
members p;
fp=fopen("members.txt","a");
if(fp==NULL)
{
printf("Can't create file:members.txt\n");
exit(0);
}
N=N+1;
printf("请输入员工工号:");fflush(stdin);
scanf("%d",&member);
p.member=member;
fflush(stdin);
printf("请输入人名:");
gets(a);
strcpy(p.name,a);
printf("请输入性别:");
gets(b);
strcpy(p.sex,b);
printf("请输入工资:");
scanf("%d",&money);
p.money=money;
fwrite(&p,sizeof(struct members),N,fp);
rewind(fp);
fclose(fp);
}
然后我输出模块是:
/*浏览信息模块*/
void disp()
{
int end,start,i;
FILE *fp;
fp=fopen("members.txt","r+");
if(fp==NULL)
{
printf("Can't create file:members.txt\n");
exit(0);
}
memset(mem,0,N*sizeof(struct members));
printf("\t\t ----------浏 览 界 面--------- \t\t\n");
printf("\t\t工号\t姓名\t性别\t工资\t\n");
for (i=0;i<N;i++)
{
fseek(fp,i*sizeof(struct members),SEEK_SET);
fread(&mem[i],sizeof(struct members),1,fp);
printf("\t\t%d\t%s\t%s\t%d\n",mem[i].member,mem[i].name,mem[i].sex,mem[i].money);
printf("\n");
}
fclose(fp);
end=time(NULL);
start=time(NULL);
while(end-start<1.5)
end=time(NULL);
}
当我输入数据
1 1 1 1
2 2 2 2
然后在增加一个信息,输出结果会显示:
1 1 1 1
2 2 2 2
3 3 3 3
然后当我把程序关了,在进去程序,在输出的时候却发现,第三行信息没有被输出,也就是说没有被写入文件,这是为什么呀?