Cの実装-構造を使用して学生の成績をファイルに入力します(詳細)

前に書く(インポート)

        「デスクトップにテキストドキュメントを作成する」 の前に、必ずプログラムを実行してください。名前は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