前に書く(インポート)
「デスクトップにテキストドキュメントを作成する」 の前に、必ずプログラムを実行してください。名前は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)次の図に示すように、ファイルの内容は次のとおりです。