帮我看看这个写入和输出的文件
void Write_file(MES * head){
MES *p;
FILE *fp;
if ((fp = fopen("学生学籍管理系统.dat", "wb")) == NULL)
{
printf("无法打开文件!");
exit(0);
}
for (p = head->next; p != NULL; p = p->next)
{
fwrite(&p,sizeof(MES),1,fp);
}
fclose(fp);
pritnf("数据已存入\n");
}
// 显示数据
void Read_file(MES * head)
{
MES *p;
FILE *fp;
if ((fp = fopen("学生学籍管理系统.dat", "rb")) == NULL)
{
printf("无法打开文件!");
exit(0);
}
for (p = head->next; p != NULL; p = p->next)
{
fread(&p, sizeof(MES),1,fp);
if (p = NULL)
fread(&p,sizeof(MES),1,fp);
}
fclose(fp);
for (p = head->next; p != NULL; p = p->next)
{
printf("学号:%d\n", p->student_data.num);
printf("姓名:%s\n", p->student_data.name);
printf("性别:%s\n", p->student_data.sex);
printf("年龄:%d\n", p->student_data.age);
printf("籍贯:%s\n", p->student_data.nativeplace);
printf("系别:%d\n", p->student_data.department);
printf("专业:%s\n", p->student_data.major);
printf("班级:%s\n", p->student_data.classs);
}
}
前面的链表都没有问题,每次到显示输出时都出现vc停止工作, 这两个子函数 哪里错了吗 MES 是一个链表
if (p = NULL)
fread(&p,sizeof(MES),1,fp);
这句有问题,p=NULL直接赋值成空指针了,再执行p = p->next就崩溃了 漩涡鸣人 发表于 2014-9-21 13:35
这句有问题,p=NULL直接赋值成空指针了,再执行p = p->next就崩溃了
对对对,但是如果要改要怎么改呢, 如果只有一个数据的话
页:
[1]