C实现-利用结构体录入学生成绩到文件中(详细)

写在前面(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)如下图,文件中内容:

猜你喜欢

转载自blog.csdn.net/m0_54158068/article/details/124372971