写在前面(import)
务必执行程序前:“在桌面上建立1个文本文档”,名称为student 。避免程序执行错误,当然,也可以修改文件打开的相对路径,自行在下面程序中修改“fopen("student.txt","r")”中文件student.txt 的路径。
代码实现
思想:先存储数据到数组中,再分别写入到文件中。(程序中已详细注释,这里不再重复讲解)
//导入头文件
#include<stdio.h>
#include<stdlib.h>
//定义结构体
typedef struct{
char name[20];//姓名
int ID;//学号
int chinese;//语文成绩
int math;//数学成绩
int English;//英语成绩
float avargrade;//平均成绩
}Student;
//主函数
int main(){
FILE *fp;//定义文件指针
Student stu[5];//定义结构体数组stu,容量为 5
int i;//控制循环
float avargrade=0;//记录平均成绩
printf("请输入5个同学的信息:姓名 学号 语文成绩 数学成绩 英语成绩:\n");//信息提示
for(i=0;i<5;i++){
scanf("%s %d %d %d %d",stu[i].name,&(stu[i].ID),&(stu[i].chinese),&(stu[i].math),&(stu[i].English));
stu[i].avargrade=(stu[i].chinese+stu[i].math+stu[i].English)/3;
}
//判断文件是否存在
if((fp=fopen("student","w"))==NULL){
printf("文件打开失败!\n");
exit(0);
}
//输出
for(i=0;i<5;i++){
fprintf(fp,"%s %d %d %d %d %d\n",stu[i].name,stu[i].ID,stu[i].chinese,stu[i].math,stu[i].English,
stu[i].avargrade);
}
fclose(fp);//关闭文件
return 0;
}
运行结果
(1)程序中,文件内容如图(2)。
(2)如下图,文件中内容: