文件读取的有关问题,这样的格式应该如何读进去! 急

文件读取的问题,这样的格式应该怎么读进去! 急急急~~
typedef struct stu //学生资料
{
  char _class[20]; //班级
  int num; //学号(两位数)
  char name[8]; //姓名
 
  float elec; //电子技术
  float C_prog; //c++程序设计
  float media; //多媒体
  float Eng; //大学英语
  float math; //大学数学
  float sport; //大学体育
  float polity; //政治
 
  float ave; //平均成绩
  int order; //名次
  stu *next; //记录下一结点的指针
}stuNode;
学生结构体

stuNode * link; //头节点

//保存文件到本地文本文件
void SaveFile(stuNode *link)
{
FILE *fp; 
 
  if( (fp=fopen("c:\\student.txt","w+"))==NULL)  
  {  
  printf("不能打开此文件!\n");  

return;
  }  
for(stuNode * s = link ; s != NULL ; s = s->next );
{  
fprintf(fp,"%s 班级\n",s->_class);  
fprintf(fp,"------------------------------------------\n" );
fprintf(fp,"|学号| 姓名 |电子技术| C++ | 多媒体 | 英语 | 数学 | 体育 |政治经济|\n" );
fprintf(fp,"------------------------------------------\n" );
fprintf(fp,"| %2d |%-8s|%7.0f|%7.0f|%7.0f|%7.0f|%7.0f|%7.0f|%7.0f|\n", s->num,
s->name,
s->elec,
s->C_prog,
s->media,
s->Eng,
s->math,
s->sport,
s->polity );
fprintf(fp,"------------------------------------------\n" );  
// }
fclose(fp);

}


文件保存的内容格式如下:

1 班级
------------------------------------------
|学号| 姓名 |电子技术| C++ | 多媒体 | 英语 | 数学 | 体育 |政治经济|
------------------------------------------
| 1 |1 | 1| 1| 1| 1| 1| 1| 1|
------------------------------------------

问各位大哥读的时候应该怎么样读出来啊??

void LoadFile(stuNode *link)
{
FILE *fp;
  stuNode * temp ; 
  if( (fp=fopen("c:\\student.txt","r"))==NULL)  
  {  
  printf("不能打开此文件!\n");  
  }  
  while(!fp)  
  { 
stuNode * s;

fscanf(fp,"%d",s->_class);
   
fscanf(fp,"%d %s %f %f %f %f %f %f %f ",s->num,s->name, s->elec,s->C_prog,s->media,s->Eng, s->math, s->sport, s->polity );
s->next = NULL;
   
  if(link == NULL)
link = s;
  else
  {
  s->next = link->next;
  link ->next = s;
  }
   
  

   
  } 
  fclose(fp);
}
我这里写错了! 各位大哥,应该怎么写这个读取的函数啊!
急急急~ ....  
  小弟在线等待 ...
  或者MSN我 liulop2004@hotmail.com  
  小弟不胜感激! 





------解决方案--------------------
int fseek(FILE *stream, long offset, int fromwhere);
我想只有利用上面那个函数,把文件指针移动到你想读取的位置。