大学c字符串数组题求解

问题

img

img

不知道这种数字和字符串混在一起的怎么做 求指点

因为没啥思路就只搞了个输入,但是还不对

#include<stdio.h>
int main()
{
   char name[20];
   int no[20],x[20],i,j;
   FILE*fp;
   fp=fopen("score.txt","r"); 
   for(j=0;j<3;j++)
   {
       fscanf(fp,"%s%s",no,name);
       printf("%s  %s",no,name);
       for(i=0;i<3;i++)
       {
           fscanf(fp,"%d",&x[i]);
           printf(fp,"%d",x[i]);
       }
       printf("\n");
   }
  fclose(fp);
 return 0;
}

运行结果

img

普通汉字一个字符占两个字节,字母占一个字节。 你在输出的时候,本来是两个字节表示的汉字,使用%c输出等于将汉字给拆开了。 显示的就是乱码

这里提供一种解决思路,判断当前是否为中文,如果是中文,那么接下来的两个字节视为一个整体。代码参考如下:

img

你可以参考这个问答:https://ask.csdn.net/questions/7560143?answer=53582941