6-8 有结构文件的读写1

学生类型: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 <stdio.h>
#include <stdlib.h>
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);//<--需要完成的函数(包括读入字符串,转换成对应的结构体,并利用函数(output())输出到指定文件中,输入输出文件不用考虑


/* 请在这里填写答案 */

输入样例:

从固定文件中读取:文件内容:

aaa   123   0 18 88.88
bbb 456   1 19  99.99
ccc 789 1 18 66.66
ddd   356   0 18  67.89

输出样例:

输出到指定文件中,文件内容:

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)!=EOF;output(&s,fout)); 
    //注意,id要用%s,因为防止0XX的情况,该情况是无法用%d读取
}

 

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值