作者:981378224_014f95 | 来源:互联网 | 2023-10-10 14:13
学生类型:ST的类型定义如下:
typedef struct student{ char name[10],id[10]; int gender; int age; double scored; } ST; 编写函数,从指定的文件上读入若干字符串,每行字符串是一个学生的信息(姓名,学号,性别,年龄,分数)的字符串表示,数据间以空格
分隔,将学生们的信息存储于一个结构体中,并利用output()函数输出到指定文件中。
函数接口定义:
void fun(FILE *fin,FILE *fout);
其中 fin
和 fout
都是用户传入的参数。 前者是已正常打开的可读文件,而后者是已正常打开的可写文件。
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
#include
#include
typedef struct student{char name[10],id[10];int gender;int age;double scored;
} ST;
void output(ST *d,FILE *fout){//测试程序,输出到文件调用此函数完成if(d==NULL) {printf("null\n");return;}fprintf(fout,"%s,%s,%d,%d,%4.2f\n",d->name,d->id,d->gender,d->age,d->scored);
}void fun(FILE *fin,FILE *fout);//<--需要完成的函数&#xff08;包括读入字符串&#xff0c;转换成对应的结构体&#xff0c;并利用函数&#xff08;output&#xff08;&#xff09;&#xff09;输出到指定文件中&#xff0c;输入输出文件不用考虑/* 请在这里填写答案 */
输入样例&#xff1a;
从固定文件中读取&#xff1a;文件内容&#xff1a;
aaa 123 0 18 88.88
bbb 456 1 19 99.99
ccc 789 1 18 66.66
ddd 356 0 18 67.89
输出样例&#xff1a;
输出到指定文件中&#xff0c;文件内容&#xff1a;
aaa,123,0,18,88.88
bbb,456,1,19,99.99
ccc,789,1,18,66.66
ddd,356,0,18,67.89
void fun(FILE *fin,FILE *fout)
{for(ST s;fscanf(fin,"%s%s%d%d%lf",s.name,s.id,&s.gender,&s.age,&s.scored)!&#61;EOF;output(&s,fout)); //注意&#xff0c;id要用%s&#xff0c;因为防止0XX的情况&#xff0c;该情况是无法用%d读取
}