void Savestudent()
{
//打开文件
FILE* fp;
errno_t err = fopen_s(&fp, "D:\\stuinfo.txt", "w");
if (fp == NULL)
{
printf("打开文件失败!\n");
return;
}
//遍历链表
Node* p = phead;
while (p != NULL)
{
fwrite(&p->stu, 1, sizeof(student), fp);
p = p->pNext;
}
//关闭文件
fclose(fp);
printf("\n数据保存成功!\n");
system("pause");//暂停
system("cls");//清屏
}
//读取学生信息
void Readsttudent()
{
student stu;
//打开文件
//打开文件
FILE* fp;
errno_t err = fopen_s(&fp, "D:\stuinfo.txt", "r");
if (fp == NULL)
{
printf("文件打开失败!\n");
return;
}
//读文件
while (fread(&stu, 1, sizeof(student), fp))
{
//创建一个新节
Node* pNewNode = (Node*)malloc(sizeof(Node));//申请一个空节点
pNewNode->pNext = NULL;
memcpy(pNewNode, &stu, sizeof(student));//copy
//头插法
if (phead == NULL)
{
phead = pNewNode;
}
else
{
pNewNode->pNext = phead;
phead = pNewNode;
}
}
//关闭文件
fclose(fp);
printf("加载数据成功!\n");
system("pause");//暂停
system("cls");//清屏
}