我用vs2022想从文件里读取信息
void ReadDocument(PointNode &p)
{
FILE* fp;
errno_t fpp;
fpp=fopen_s(&fp,"student.txt", "r");
if (fpp != 0)
{
printf("文件打开失败!");
exit(1);
}
else
{
while (!feof(fp))
{
fscanf_s(fp, "%d",&p->stu.xuehao);
//fscanf_s(fp, "%s",s.name);
for(int i=0;i<N;i++)
{
fscanf_s(fp, "%lf", &p->stu.score[i]);
}
printf(" %d ",p->stu.xuehao);
for (int i = 0; i < N; i++)
{
printf("%.2f ", p->stu.score[i]);
}
printf("\n");
p->next = new Node;
p = p->next;
}
}
fclose(fp);
}
正确读入
你 fscanf_s(fp, "%2d", &p->stu.xuehao);
赋值的是stu.xuehao
printf(" %2d ", p->stu.ranking);
输出的却是stu.ranking
输入的输出的变量要一致
fscanf_s(fp, "%2d", &p->stu.xuehao);
改成
fscanf_s(fp, "%2d", &p->stu.ranking);
或者
printf(" %2d ", p->stu.ranking);
改成
printf(" %2d ", p->stu.xuehao);
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
可能是因为文件最后多了一行空行
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!