void daoru(){ p=head; FILE *sk=fopen("daoruxinxi.txt","r"); FILE *sp=fopen("daorushuju.txt","r"); if (sk==NULL&&sp==NULL){ printf("无法打开文件\n"); } while(p->next!=NULL) p=p->next; list *m1=(struct list*)malloc(sizeof(struct list)); p->next=m1; while(!feof(sk)&&!feof(sp)){ list *m1=(struct list*)malloc(sizeof(struct list)); int end=fscanf(sk,"%[^,],%[^,],%[^,],%[^,],%s\n",m1->xuehao,m1->xinmin,m1->xinbie,m1->dizhi,m1->dianhua); int end1=fscanf(sp,"%.0lf,%.0lf,%.0lf,%.3lf,%.0lf,%.0lf,%.0lf,%.0lf",&m1->yuwen,&m1->shuxue,&m1->waiyu,&m1->pinjun,&m1->minci,&m1->zonghe,&m1->zongheminci); if(end==-1&&end1==-1) break; printf("学号:%s|姓名:%s|性别:%s|地址:%s|电话:%s|语文:%lf|数学:%lf|外语:%lf|考试成绩:%lf|名次:%lf|品德:%lf|综合分:%lf|综合名次:%lf|\n" ,m1->xuehao,m1->xinmin,m1->xinbie,m1->dizhi,m1->dianhua,m1->yuwen,m1->shuxue,m1->waiyu,m1->pinjun,m1->minci,m1->pinde,m1->zonghe,m1->zongheminci); p->next=m1; p=m1; } fclose(sk); fclose(sp); }的第二个fscanf无法成功读取
时间: 2024-03-29 07:36:52 浏览: 110
可能出现无法读取的原因有以下几个:
1. 文件不存在或无法打开:如果你传递给fscanf的文件指针为NULL,或者文件不存在或打开失败,那么fscanf将无法从文件中读取任何数据。
2. 文件中的数据格式不匹配:fscanf函数需要知道从文件中读取的数据的格式,如果文件中的数据格式与你传递给fscanf的格式字符串不匹配,那么fscanf将无法正确地解析数据。
3. 文件中没有可读取的数据:如果文件中没有数据可以被读取,那么fscanf将返回0。
4. 其他错误:如果文件中的数据不符合你的预期,比如包含了错误的字符或无法转换为正确的数据类型,那么fscanf可能会返回0或其他错误代码。
你可以检查以上原因,看看是哪一个导致了第二个fscanf无法成功读取的问题。如果无法确定问题所在,可以在代码中加入一些调试语句,输出一些变量的值,以便更好地理解程序的执行过程。
阅读全文