关于C++里的文件操作,帮忙分析一下,问题是存到txt文件里以后,第二次运行程序,txt里就没东西了
这是程序的一段,全程序太大放不下,大家看一下这段程序有没有错误啊voidput(SLNode*head,FILE*fp)//--------------------职工信...
这是程序的一段,全程序太大放不下,大家看一下这段程序有没有错误啊
void put(SLNode *head,FILE *fp)//--------------------职工信息的保存
{
SLNode *p;
if((fp=fopen("职工名单.txt","w"))==NULL){
printf("无法打开'职工名单.txt'!\n");
exit(0);
}
for(p=head->next;p;p=p->next)
{
fprintf(fp,"%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->born_time,p->work_time,p->degree,p->job,p->address,p->tele_num);
}
if(fclose(fp)){
printf("无法关闭'职工名单.txt'!\n"); exit(0);
}
} 展开
void put(SLNode *head,FILE *fp)//--------------------职工信息的保存
{
SLNode *p;
if((fp=fopen("职工名单.txt","w"))==NULL){
printf("无法打开'职工名单.txt'!\n");
exit(0);
}
for(p=head->next;p;p=p->next)
{
fprintf(fp,"%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->born_time,p->work_time,p->degree,p->job,p->address,p->tele_num);
}
if(fclose(fp)){
printf("无法关闭'职工名单.txt'!\n"); exit(0);
}
} 展开
展开全部
if((fp=fopen("职工名单.txt","w"))==NULL){
你第二次运行的时候会把文件清空的,如果你想往里面写东西可以用"a" 表示追加,这样就不会删除原来的东西了,前提是这个文件必须存在(也就是先创建)
你第二次运行的时候会把文件清空的,如果你想往里面写东西可以用"a" 表示追加,这样就不会删除原来的东西了,前提是这个文件必须存在(也就是先创建)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if((fp=fopen("职工名单.txt","w"))==NULL){
printf("无法打开'职工名单.txt'!\n");
第二次打开是请用 "r" 如果用"w" 则清空了
printf("无法打开'职工名单.txt'!\n");
第二次打开是请用 "r" 如果用"w" 则清空了
追问
换成r以后,存都不能存了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用fopen("职工名单.txt", "a")
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询