通讯录静态版本2
续上次的静态版本,这次加上文件的存储和访问。
要求
添加一个读取函数,在通讯录打开的时候,可以把文件中的信息加载到通讯录中,再添加一个存储函数,在退出通讯录的时候把信息到保存到文件中。
程序代码
初始化的时候读取文件里信息到程序里面。
//添加一个函数,在通讯录打开的时候,可以把文件中的信息加载到通讯录中
void ReadContact(Contact* pc)
{
//打开文件
FILE* pf = fopen("contact.txt", "rb");
//判空
if (pf == NULL)
{
perror("read fopen");
return;
}
//操作文件
PeoInfo tmp = { 0 };
while (fread(&tmp, sizeof(PeoInfo), 1, pf))
{
pc->data[pc->sz] = tmp;
pc->sz++;
}
printf("读取成功\n");
//关闭文件
fclose(pf);
pf = NULL;
}
程序结束的时候把联系人再保存在文件里面。
// 添加一个函数,在退出通讯录的时候把信息到保存到文件中
void SaveContact(Contact* pc)
{
//打开文件
FILE* pf = fopen("contact.txt", "wb");
//判空
if (pf == NULL)
{
printf("save fopen");
return;
}
//操作文件
int i = 0;
for (i = 0; i < pc->sz; i++)
{
fwrite(pc->data + i, sizeof(PeoInfo), 1, pf);
}
printf("保存成功\n");
//关闭文件
fclose(pf);
pf = NULL;
}