📄 load_save_user.cpp
字号:
#include"acridine.h"
#include"stdlib.h"
#include"string.h"
#include"iostream.h"
void save(user *yonghu)//把从实参传过来的结点信息写进文件
{
FILE *fp1;
if((fp1=fopen("acridine_massage.txt","a+"))==NULL)
{
printf("cannot open file\n");
return;
}
fprintf(fp1,"%ld %s %s %s %s %s %d\n",yonghu->UserID,yonghu->true_name,yonghu->user_name,yonghu->sex,yonghu->phone,yonghu->code,yonghu->borrow_num);
fclose(fp1);
}
int writeintobook(member &yonghu)//把从实参传过来的yonghu链表(yonghu为头结点)的信息写进文件,归删除函数调用
{
user *p;
FILE *fp;
if((fp=fopen("acridine_massage.txt","w"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
p=yonghu;
while(p!=NULL)
{
fprintf(fp,"%ld %s %s %s %s %s %d\n",p->UserID,p->true_name,p->user_name,p->sex,p->phone,p->code,p->borrow_num);
p=p->next;
}
fclose(fp);
return 1;
}
/*int load_acridine_massage(member &head)//将文件中的会员信息读取到链表中
{
acridine *p1,*p2;
FILE *fp;
p1=head;
while(p1!=NULL)
{
p2=p1->next;
free(p1);
p1=p2;
}
if((fp=fopen("acridine_massage.txt","r+"))==NULL)
{
printf("找不到该文件\n");
return 0;
}
p1=(member)malloc(sizeof(acridine));
p1->next=NULL;
while(fread(p1,sizeof(user),1,fp))
{
p2=(member)malloc(sizeof(acridine));
p2->next=NULL;
p1->next=p2;
p1=p2;
}
fclose(fp);
return 1;
}*/
void read_to_link(member &yonghu)//形参为user类型的结点,user为结构体指针类型
{
user *p1,*p2;
FILE *fp;
if((fp=fopen("acridine_massage.txt","r+"))==NULL)
{
printf(" cannot open file\n");
return ;
}
int i=0;
while(!feof(fp))//把文件里的所有信息读进链表
{
p1=(user*)malloc(sizeof(user));
p1->next=NULL;
fscanf(fp,"%ld %s %s %s %s %s %d\n",&p1->UserID,p1->true_name,p1->user_name,p1->sex,p1->phone,p1->code,&p1->borrow_num);
if(strlen(p1->user_name)>29)//如果乱码,则继续执行while,直到文件结束(只有在文件为空(似空实非空)的时候才会乱码)
continue;
if(0==i)yonghu=p1;
else p2->next=p1;
p2=p1;
i++;
}
fclose(fp);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -