内存不能read的错误
写了个录入学生信息的函数,执行到输入学号那就会出现内存不能read的字样,我照着这个贴(http://bbs.bc-cn.net/viewthread.php?tid=141458&star=at#)写的,基本差不多啊程序代码:
void addstudent()
{
int count;
char ch;
system(\"cls\");
if((student=fopen(filename1,\"a+b\"))==NULL)
{
printf(\"不能打开文件,请确认磁盘已满或c:\\学生信息.dat文件没有损坏\");
getch();
exit(1);
}
rewind(student); //定位文件头开始读取
for(count=0;fread(&head[count],sizeof(struct student),1,student)==1;count++)
{
continue;
}
printf(\"\n=======================信息登记表===========================\n\");
printf(\"---------------------------------------------------------\n\n\");
printf(\"学 号:\");
while(gets(head[count].num)!=NULL ) //输入学号
{
printf(\"\n姓 名:\");
gets(head[count].name); //输入姓名
printf(\"\n年 龄:\");
gets(head[count].age); //输入年龄
fwrite(&head[count++],sizeof(struct student),1,student); //将信息写入文件
printf(\"是否录入下一个学生信息(y/n)\");
ch=getch();
if(ch=='y'||ch=='Y')
{
system(\"cls\");
printf(\"\n请输入下一个学生的个人信息\n\");
printf(\"\n学 号:\");
continue;
} //继续输入下一个学生信息
else
{
printf(\"\n\n个人信息录入结束,返回!\");
fclose(student); //关闭文件
getch(); //返回子菜单
system(\"cls\");
return ;
}
}
printf(\"输入有误,终止个人信息录信,返回!\");
getch();
system(\"cls\");
return ; //返回
}
{
int count;
char ch;
system(\"cls\");
if((student=fopen(filename1,\"a+b\"))==NULL)
{
printf(\"不能打开文件,请确认磁盘已满或c:\\学生信息.dat文件没有损坏\");
getch();
exit(1);
}
rewind(student); //定位文件头开始读取
for(count=0;fread(&head[count],sizeof(struct student),1,student)==1;count++)
{
continue;
}
printf(\"\n=======================信息登记表===========================\n\");
printf(\"---------------------------------------------------------\n\n\");
printf(\"学 号:\");
while(gets(head[count].num)!=NULL ) //输入学号
{
printf(\"\n姓 名:\");
gets(head[count].name); //输入姓名
printf(\"\n年 龄:\");
gets(head[count].age); //输入年龄
fwrite(&head[count++],sizeof(struct student),1,student); //将信息写入文件
printf(\"是否录入下一个学生信息(y/n)\");
ch=getch();
if(ch=='y'||ch=='Y')
{
system(\"cls\");
printf(\"\n请输入下一个学生的个人信息\n\");
printf(\"\n学 号:\");
continue;
} //继续输入下一个学生信息
else
{
printf(\"\n\n个人信息录入结束,返回!\");
fclose(student); //关闭文件
getch(); //返回子菜单
system(\"cls\");
return ;
}
}
printf(\"输入有误,终止个人信息录信,返回!\");
getch();
system(\"cls\");
return ; //返回
}
----------------解决方案--------------------------------------------------------