当前位置: 代码迷 >> C语言 >> [求助]程序有输出,但文件里却没有,这是为什么呀?
  详细解决方案

[求助]程序有输出,但文件里却没有,这是为什么呀?

热度:136   发布时间:2007-10-12 12:54:12.0
[求助]程序有输出,但文件里却没有,这是为什么呀?

这是我的那个结构体:
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

然后当我把程序关了,在进去程序,在输出的时候却发现,第三行信息没有被输出,也就是说没有被写入文件,这是为什么呀?

搜索更多相关的解决方案: 文件  输出  

----------------解决方案--------------------------------------------------------
  相关解决方案