if(fscanf(fp,"%d %s %s %d %s %lf %s",&tmp->xh,tmp->gh,tmp->xm,&tmp->gl,tmp->zc,&tmp->gz,tmp->dh)!=7) break;
这句c++可以直接用的呀。FILE *fp
fscanf 是c函数,需要改成ifstream。参考https://blog.csdn.net/qq_34018840/article/details/106409947