C语言初学者不明白的文件问题
/*有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号、姓名、三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中。*/#i...
/*有5 个学生,每个学生有3 门课的成绩,从键盘输入以上数据(包括学生号、姓名、三
门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud 中。*/
#include<stdio.h>
struct student
{
char num[10];
char name[8];
int score[3];
float ave;
}stu[5];
main()
{
int i,j,sum;
FILE *fp;
for(i=0;i<5;i++)
{
printf("\n input score of student%d:\n",i+1);
printf("NO.:");
scanf("%s",stu[i].num);
printf("name:");
scanf("%s",stu[i].name);
sum=0;
for(j=0;j<3;j++)
{
printf("score %d :",j+1);
scanf("%d",&stu[i].score[j]);
sum+=stu[i].score[j];
}
stu[i].ave=sum/3.0;
}
fp=fopen("stud","w");
for(i=0;i<5;i++)
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("File write error\n");
fclose(fp);
fp=fopen("stud","r");
for(i=0;i<5;i++)
{
fread(&stu[i],sizeof(struct student),1,fp);
printf("\n%s,%s,%d,%d,%d,%6.2f\n",stu[i].num,stu[i].name,stu[i].score[0], stu[i].score[1],
stu[i].score[2] ,stu[i].ave);
}
fclose(fp);
}
这些打开的文件,我的电脑没有啊
为什么程序依然正常运行还得出了结果
能解释一下吗?
谢谢啦 展开
门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud 中。*/
#include<stdio.h>
struct student
{
char num[10];
char name[8];
int score[3];
float ave;
}stu[5];
main()
{
int i,j,sum;
FILE *fp;
for(i=0;i<5;i++)
{
printf("\n input score of student%d:\n",i+1);
printf("NO.:");
scanf("%s",stu[i].num);
printf("name:");
scanf("%s",stu[i].name);
sum=0;
for(j=0;j<3;j++)
{
printf("score %d :",j+1);
scanf("%d",&stu[i].score[j]);
sum+=stu[i].score[j];
}
stu[i].ave=sum/3.0;
}
fp=fopen("stud","w");
for(i=0;i<5;i++)
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("File write error\n");
fclose(fp);
fp=fopen("stud","r");
for(i=0;i<5;i++)
{
fread(&stu[i],sizeof(struct student),1,fp);
printf("\n%s,%s,%d,%d,%d,%6.2f\n",stu[i].num,stu[i].name,stu[i].score[0], stu[i].score[1],
stu[i].score[2] ,stu[i].ave);
}
fclose(fp);
}
这些打开的文件,我的电脑没有啊
为什么程序依然正常运行还得出了结果
能解释一下吗?
谢谢啦 展开
展开全部
#include"stdafx.h"
#include<stdio.h>
struct student
{
char num[10];
char name[8];
int score[3];
float ave;
}stu[5];
main()
{
int i,j,sum;
FILE *fp;
for(i=0;i<5;i++)
{
printf("\n input score of student%d:\n",i+1);
printf("NO.:");
scanf("%s",stu[i].num);
printf("name:");
scanf("%s",stu[i].name);
sum=0;
for(j=0;j<3;j++)
{
printf("score %d :",j+1);
scanf("%d",&stu[i].score[j]);
sum+=stu[i].score[j];
}
stu[i].ave=sum/3.0;
}
fp=fopen("stud.txt","w");
for(i=0;i<5;i++)
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("File write error\n");
fclose(fp);
fp=fopen("stud.txt","r");
for(i=0;i<5;i++)
{
fread(&stu[i],sizeof(struct student),1,fp);
printf("\n%s,%s,%d,%d,%d,%6.2f\n",stu[i].num,stu[i].name,stu[i].score[0], stu[i].score[1],
stu[i].score[2] ,stu[i].ave);
}
fclose(fp);
}
这样就有了、
文件要有后缀名
#include<stdio.h>
struct student
{
char num[10];
char name[8];
int score[3];
float ave;
}stu[5];
main()
{
int i,j,sum;
FILE *fp;
for(i=0;i<5;i++)
{
printf("\n input score of student%d:\n",i+1);
printf("NO.:");
scanf("%s",stu[i].num);
printf("name:");
scanf("%s",stu[i].name);
sum=0;
for(j=0;j<3;j++)
{
printf("score %d :",j+1);
scanf("%d",&stu[i].score[j]);
sum+=stu[i].score[j];
}
stu[i].ave=sum/3.0;
}
fp=fopen("stud.txt","w");
for(i=0;i<5;i++)
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("File write error\n");
fclose(fp);
fp=fopen("stud.txt","r");
for(i=0;i<5;i++)
{
fread(&stu[i],sizeof(struct student),1,fp);
printf("\n%s,%s,%d,%d,%d,%6.2f\n",stu[i].num,stu[i].name,stu[i].score[0], stu[i].score[1],
stu[i].score[2] ,stu[i].ave);
}
fclose(fp);
}
这样就有了、
文件要有后缀名
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询