写了个读文件的代码,但运行之后读出来的就乱了

这是代码
void Read()//从文件中读取
{
int i,j;

FILE *fp;
fp=fopen("busline.txt","r+");
if(fp==NULL)
{
printf("不能打开此文件!");
exit(0);
}
for(i=0;i<m;i++)
{
fscanf(fp,"%d",&bl[i].busnum);
fscanf(fp,"%d",&z[i]);
for(j=0;j<z[i];j++)
{
fscanf(fp,"%d %s",&bl[i].stop[j].num,bl[i].stop[j].name);
}
}printf("\n");
fclose(fp);
}
理想图片说明

现实图片说明
我看不出那有问题,求助

我已解决了,打扰各位了

当一个未初始化赋值的时候(至少是vc 下未初始化的内存)默认是0xCCCCCCCC;,他在内存就默认保存为-858993460 即二进制的11001100 11001100 11001100 11001100; 十六进制的CCCCCCCC;而汉字 "烫" 的编码恰好就是1100110011001100: