C语言文件读入结构体数组...s
首先用fgets从文件中读取一行作为全部的人数,转换为整数保存到变量中
然后再用fgets从文件中读取一行作为成绩数量,转换为整数后保存在变量中,此数不能超过10 ,否则应该出错结束;
用fgets从文件中读取一行,此行是Number Name Score1 sum average ,跳过不要
然后循环:
(1)用fgets从文件中读取一行,保存到字符串中,以下操作以字符串为基本数据;
(2)以空格为分隔符,读取第一个字段,应该是:NO。 1。。。
从第三个字节开始截取,将结果转换为整数,作为student结构的number
(3)以空格为分隔符,读取第二个字段,不能超过9个字符,作为n...全部
首先用fgets从文件中读取一行作为全部的人数,转换为整数保存到变量中
然后再用fgets从文件中读取一行作为成绩数量,转换为整数后保存在变量中,此数不能超过10 ,否则应该出错结束;
用fgets从文件中读取一行,此行是Number Name Score1 sum average ,跳过不要
然后循环:
(1)用fgets从文件中读取一行,保存到字符串中,以下操作以字符串为基本数据;
(2)以空格为分隔符,读取第一个字段,应该是:NO。
1。。。
从第三个字节开始截取,将结果转换为整数,作为student结构的number
(3)以空格为分隔符,读取第二个字段,不能超过9个字符,作为name数据;
(4)以成绩数量为循环上限作第二次循环,从字符串中以空格为分隔符一次读取成绩字符串,转换为整数,保存在score数组中,同时计算成绩和;
(5)以空格为分隔符,读取下个字段,作为sum数据;如果此值和上面计算的 成绩和一直,保存,否则报错结束;
(6)以空格为分隔符,读取下个字段,作为平均数据;
循环处理全部的文件行数据
必要时打印读入信息
建议:
(1)由于解析学生数据是个独立而且重复的工作,建议写成函数,两个参数:以字符串为输入参数1,另一个参数是申请好的学生信息结构指针一包存结果。
返回整数:数据正确返回0,否则返回-1;
(2)我在描述中已经提到多次数据有误的情况,建议你检查,以提高程序健壮性;
(3)从字符串中读取字段信息,其实也是重复的简单工作,建议你写成函数,传入源字符串和分隔符,然后查找即可;函数中要注意字符串结束处理
给你一个例子,你看看
。
收起