c语言学生简易信息管理系统

修改数据无法写入到记事本上



void yan8() //修改学生信息//
{
    FILE  *fp;
     char m[30];
     int i,t,j,flag=0;
     printf("请输入要修改的的学生学号:") ;
     scanf("%s",m);
     for(i=0;i<rnum;i++)
     {
          if(strcmp(m,yan[i].xuehao)==0)
         {
               flag=1;
               break;
        }
     }
     if(!flag==1)
     printf("未查到\n");
     else
     {
         loop:
              while(t)
      {
          printf("\n:1学号,2姓名,3性别,4出生年月,5籍贯,6电话,7成绩,0结束\n请输入你要修改的选项序号:");
        scanf("%d",&t);
        switch (t)
        {
        case 1:
          printf("请输入新的学号:\n");
          scanf("%s",m);
          strcpy(yan[i].xuehao,m);
         goto loop;
        case 2:
          printf("请输入新的姓名:\n");
          scanf("%s",m);
          strcpy(yan[i].name,m); 
         goto loop;
       case 3:
          printf("请输入新的性别:\n");
              scanf("%s",m);
              strcpy(yan[i].ser,m); 
         goto loop;
        case 4:
          printf("请输入新的出生年月:\n");
                scanf("%s",m);
                strcpy(yan[i].date,m);
         goto loop;
        case 5:
          printf("请输入新的籍贯:\n");
          scanf("%s",m);
          strcpy(yan[i].jiguan,m);
         goto loop;
        case 6:
          printf("请输入新的电话:\n");
                 scanf("%s",m);
                 strcpy(yan[i].phone,m);
         goto loop;
        case 7:
          printf("请输入新的成绩:\n");
                 scanf("%d",&j);
                 yan[i].score=j;
         goto loop; 
         fp=fopen("JK0743.txt","w");
    if(fp==NULL)
    {
        printf("文件打开失败");
        exit(0);
    }
    for(i=0;i<rnum;i++)
    {
        fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%s\t%d\n",
         yan[i].xuehao,yan[i].name, yan[i].ser,yan[i].date,yan[i].jiguan, yan[i].phone,yan[i].score);
    }
    fclose(fp);
    printf("数据写入文件成功。\n");
         }
         if(t==0)
         break;
         
    }
 }
 
}

goto尽量不要用。
写入文件的操作。在case 7: 后面被goto跳过了。没有执行。

你可以参考下这篇文章:C语言学生信息管理系统