wgn25m 2021-05-13 10:09 采纳率: 0%
浏览 132

C语言 文件题 程序片段编程题 1. 格式化读文件

/*
@Filename:  ex804.c
@Author:  Ju  Chengdong
@Version:  1.0
@Date:  2021-03-18
@Description:  Format  Input  and  Output
*/

#include  <stdio.h>

struct  stu{
        int  id;  //学号  
        char  name[20];  //姓名  
        int  age;  //年龄  
        int  score;  //成绩  
};

int  main(){
/*声明函数及变量*/
        void  readFileForStu(struct  stu  *p,  int  num,  char  filename[],char  mode[]);
        void  stdoutForStu(struct  stu  *p,  int  num);
        const  int  NUM  =  2;  //学生数量
        struct  stu  students[NUM];  //stu型数组  
        struct  stu  *p  =  students;  //stu型指针
        char  filename[]  =  "ex804.txt";  //待读取的文件路径及名称
        
        /*从文件获取输入*/
        readFileForStu(p,  NUM,  filename,  "r");
        
        /*向屏幕输出显示*/
        stdoutForStu(p,  NUM);
        return  0;
}

/*
  *  函数名称:readFileForStu
  *  函数功能:从文件格式化读取数据
  *  写入格式:共读取  num  行;每行读出一个  stu  型数据,每个成员变量之间用空格分隔  
  *  形式参数:struct  stu  *  p,指向  stu  型一维数组首地址。该数组用于保存文件读取数据  
  *  形式参数:int  num,一维数组元素个数,也即读取文件的行数  
  *  形式参数:char  filename[],待读取的文件路径及名称
  *  形式参数:char  mode[],文件使用方式  
  *  返  回  值:无  
  */
void  readFileForStu(struct  stu  *p,  int  num,  char  filename[],char  mode[]){
        //  请编程实现本函数
        
}

/*
  *  函数名称:stdoutForStu
  *  函数功能:向显示器输出显示数据
  *  输出格式:共输出  num  行;每行输出一个  stu  型数据,每个成员变量之间用空格分隔  
  *  形式参数:struct  stu  *  p,指向  stu  型一维数组首地址
  *  形式参数:int  num,一维数组元素个数  
  *  返  回  值:无  
  */
void  stdoutForStu(struct  stu  *p,  int  num){
        //  请编程实现本函数
        
}从文本文件“ex804.txt”格式化读取学生信息,然后将学生信息封装到结构体数组中,最后在标准输出设备中输出显示。

(1)“ex804.txt”的存储组织格式为:每行只保存一个同学信息;每行(每个同学)共有4个数据,分别为学号、姓名、年龄、成绩,每个数据之间以空格分隔。注:文本文件“ex804.txt”应与源文件“ex804.c”保存在同一个文件夹中。

(2)学生结构体定义如下:

struct stu{

int id; //学号

char name[20]; //姓名

int age; //年龄

int score; //成绩

};

目前,已完成main函数的编写,请编程实现“readFileForStu”函数和“stdoutForStu”函数。

/*

@Filename: ex804.c

@Author: Ju Chengdong

@Version: 1.0

@Date: 2021-03-18

@Description: Format Input and Output

*/

 

#include <stdio.h>

 

struct stu{

int id; //学号

char name[20]; //姓名

int age; //年龄

int score; //成绩

};

 

int main(){

/*声明函数及变量*/

void readFileForStu(struct stu *p, int num, char filename[],char mode[]);

void stdoutForStu(struct stu *p, int num);

const int NUM = 2; //学生数量

struct stu students[NUM]; //stu型数组

struct stu *p = students; //stu型指针

char filename[] = "ex804.txt"; //待读取的文件路径及名称

 

/*从文件获取输入*/

readFileForStu(p, NUM, filename, "r");

 

/*向屏幕输出显示*/

stdoutForStu(p, NUM);

return 0;

}

 

/*

 * 函数名称:readFileForStu

 * 函数功能:从文件格式化读取数据

 * 写入格式:共读取 num 行;每行读出一个 stu 型数据,每个成员变量之间用空格分隔

 * 形式参数:struct stu * p,指向 stu 型一维数组首地址。该数组用于保存文件读取数据

 * 形式参数:int num,一维数组元素个数,也即读取文件的行数

 * 形式参数:char filename[],待读取的文件路径及名称

 * 形式参数:char mode[],文件使用方式

 * 返 回 值:无

 */

void readFileForStu(struct stu *p, int num, char filename[],char mode[]){

// 请编程实现本函数

}

 

/*

 * 函数名称:stdoutForStu

 * 函数功能:向显示器输出显示数据

 * 输出格式:共输出 num 行;每行输出一个 stu 型数据,每个成员变量之间用空格分隔

 * 形式参数:struct stu * p,指向 stu 型一维数组首地址

 * 形式参数:int num,一维数组元素个数

 * 返 回 值:无

 */

void stdoutForStu(struct stu *p, int num){

// 请编程实现本函数

}

【输入形式】

文件输入:在文件中每行只保存一个同学信息,共有2行;每行(每个同学)共有4个数据,分别为学号、姓名、年龄、成绩,每个数据之间以空格分隔

【输出形式】

标准输出:每行输出一个同学信息,每行中数据之间以空格分隔

【样例输入】

1 libai 100 100

2 lihei 200 200

【样例输出】

1 libai 100 100

2 lihei 200 200

 

  • 写回答

5条回答 默认 最新

  • 关注

    ex804.txt里面的文件内容发部分出来看看。

    评论

报告相同问题?

悬赏问题

  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程