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");//清屏
}