文件的使用,读取乱码了,求大神解答??

//题目要求输入学生信息按总分数排序,存入文件中,再读取输出信息


#include <stdio.h>

#include<stdlib.h>

typedef  struct 

{

   int num ;

   char name[10];

   int score[15];

   int sum;

}STU;


void summ(STU st[],int n)

{   int i,j;

   for(i=0;i<n;i++)

   {  int sum=0;

      for(j=0;j<3;j++)

       sum+=st[i].score[j];

       st[i].sum=sum;

   }

}

void stor(STU st[],int n)

{

   int i,j,k;

   STU t;

   for(i=0;i<n-1;i++)

    {

      k=i;

      for(j=i+1;j<n;j++)

      {  if(st[k].sum<st[j].sum)

          k=j;

      }

    if(k!=i)

    { t=st[k];  st[k]=st[i];  st[i]=t;  }  

   }

}

int main()

{   FILE *fp;

    int i,j,n;

    STU st[15];

    scanf("%d",&n);

    printf("输入学生信息:\n");

    fp=fopen("class_list.txt","at");

    if(fp==NULL)

    {

    printf("不能打开此文件\n");

    getchar();

exit(1); 

}


  for(i=0;i<n;i++)

    {

       scanf("%d %s",&st[i].num,st[i].name);

        for(j=0;j<3;j++)

        scanf("%d",&st[i].score[j]);

        summ(st,n);

        stor(st,n);

        fwrite(&st[i],sizeof(STU),1,fp);

    }

    fclose(fp);

    fp=fopen("class_list.txt","rt");

    printf("该班成绩顺序为:\n");

    i=0;

    while(fread(&st[i],sizeof(STU),1,fp)!=NULL)

      {

        printf("%d %s %d\n",st[i].num,st[i].name,st[i].sum);

        i++;

      }

      fclose(fp);

}


才下眉头却上我心头
浏览 1798回答 1
1回答

Sweetink

设置下编码。
打开App,查看更多内容
随时随地看视频慕课网APP