C语言编译时出现Expression:(stream!=NULL)

#include<stdio.h>structstud{charstuNAME[20];doublescore1;doublescore2;doublezongfen;}... #include <stdio.h>struct stud{ char stuNAME[20]; double score1; double score2; double zongfen;}a[100],d;void main(){ int i,j=0,m,x; char p[10],q[10],w[10]; FILE *fp; FILE *fin; fp=fopen("stu.txt","r"); fin=fopen("total.txt","w"); fscanf(fp,"%s%s%s",p,q,w); while(fscanf(fp,"%s%d%d",a[j].stuNAME,a[j].score1,a[j].score2)!=NULL) { fscanf(fp,"%s%d%d",a[j].stuNAME,a[j].score1,a[j].score2); a[j].zongfen=a[j].score1+a[j].score2; j++; } for(m=0;m<j;m++) { for(x=0;x<j;i++) { if(a[x+1].zongfen>a[x].zongfen) { d=a[x+1]; a[x+1]=a[x]; a[x]=d; } } } fprintf(fin,"%s","Name Total"); for(i=0;i<j;i++) { fprintf(fin,"%s %d",a[i].stuNAME,a[i].zongfen); fprintf(fin,"\n"); } fclose(fp); fclose(fin);} 展开
 我来答
阳光的雷咩咩
2017-07-11 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7863万
展开全部
你打开文件用的w,也就是只写,后面有来了个fscanf

最好不要同时对一个文件读和写,是否你把fprintf写错成了fscanf
追问
我是想要把文件中的姓名和各科分数赋值给类中的变量,然后在比较大小排序写到另一个文件当中,fp的打开方式用的r,fin用的w
追答
检查输入文件可能没找到 你把文件删除了可能也是一样的错误
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式