问题是下面语句从文件中读取不了数据。
fscanf(fp,"%d%s%s%d%d%d%f%d",&cla[i].num,cla[i].name,cla[i].nature,&cla[i].toperiod,&cla[i].giperiod,&cla[i].experiod,&cla[i].credit,&cla[i].term);
void listcourse(){//要改
int i,n,count=0,j;
FILE *fp;
struct Course cla[100];
color(10);
if((fp=fopen("d:\\UserDate\\Cpp\\course.txt", "r"))==NULL) {printf("无法打开此文件\n");exit(0);}
for(i=0;!(feof(fp));i++){
fscanf(fp,"%d%s%s%d%d%d%f%d",&cla[i].num,cla[i].name,cla[i].nature,&cla[i].toperiod,&cla[i].giperiod,&cla[i].experiod,&cla[i].credit,&cla[i].term);
count++;
printf("%d",count);
printf("lllll");//没有打印,文件数据读不出来
}
for(j=0;j<count;j++)
{
printf("课程编号:%07d 名称:%s 性质:%s 总学时:%d 授课学时:%d 实验或上机学时:%d 学分:%.2f 上课学期:%d\n",cla[j].num,cla[j].name,cla[j].nature,cla[j].toperiod,cla[j].giperiod,cla[j].experiod,cla[j].credit,cla[j].term);
if((j+1)%10==0) //判断输出是否达到10条记录
{
printf("每页显示10条课程记录,按回车键向后翻页......\n");
getchar();
system("cls");
}
}
fclose(fp);
color(10);
printf("请选择1.返回主界面2.退出\n");
scanf("%d",&n);
switch(n){
case 1:system("cls");welcome();break;
case 2:exit(0);break;}
}
文件里的内容是
1 数据库 专业课 48 40 8 5.00 1
2 c语言 专业课 30 15 15 6.00 2
3 python 专业课 30 15 15 5.00 1
4 java 专业课 46 23 23 6.00 2
5 云计算 专业课 20 10 10 4.00 3
6 ps 选修课 10 5 5 1.00 1
7 数学 必修课 20 10 10 3.00 1
8 英语 必修课 20 10 10 3.00 2
9 电子 专业课 30 20 10 4.00 2
10 水彩画 选修课 10 5 5 2.00 3
结构体为
struct Course//课程
{ int num;//课程编号
char name[50];//课程名称
char nature[50];//课程性质
int toperiod;//课程总学时
int giperiod;//课程授课学时
int experiod;//课程上机或实验学时
float credit;//课程学分
int term;//课程学期
};
确定文件文件命名正确。
打印结果为
根据代码,读文件是没有问题的,,,,估计你的路径、或文件不正确
