首页 > 系统相关 >IO进程--day1

IO进程--day1

时间:2024-10-11 20:22:11浏览次数:3  
标签:f1 arr %. -- 2lf brr day1 stu IO

一、定义学生结构体

  1. 学生信息:学号,姓名,成绩等
  2. 编写2个函数 save_stu 和 load_stu save_stu
  3. 通过 fprintf 将arr数组中的3个学生的所有信息,保存到文件中去 load_stu
  4. 通过 fscanf 将文件中的3个学生的所有信息,读取到一个新的结构体数组中,并输出所有学生的信息
#include <stdio.h>  
#include <stdlib.h>  
  
// 学生结构体  
typedef struct Student
{  
    int id;  
    char name[20];  
    double chinese; // 语文成绩  
    double math;  
    double english;  
    double physical;  
    double chemical;  
    double biological;  
} stu_t;  
  
// 函数声明  
void save_stu(stu_t arr[], int size);  
void load_stu(stu_t arr[], stu_t *brr, int size);  
  
int main(int argc, const char *argv[])
{  
    stu_t arr[3] = {  
        {101, "小张", 99, 88, 87, 90, 89, 77},  
        {102, "小杨", 88, 90, 78, 69, 90, 89},  
        {103, "小李", 97, 89, 78, 80, 78, 86}  
    };  
    save_stu(arr, 3);  
    stu_t brr[3]; // 定义新数组brr,用于存储的学生数据  
    load_stu(arr, brr, 3); // 注意传递brr的地址和大小  
  
    // 打印加载的数据以验证  
    for (int i = 0; i < 3; i++)
	{  
        printf("学号:%d 姓名:%s 语文:%.2lf 数学:%.2lf 英语:%.2lf 物理:%.2lf 化学:%.2lf 生物:%.2lf\n",  brr[i].id, brr[i].name, brr[i].chinese, brr[i].math, brr[i].english, brr[i].physical, brr[i].chemical, brr[i].biological);  
    }  
    return 0;  
}  

//保存数组信息到文件f1中
void save_stu(stu_t arr[], int size)
{  
    FILE *f1 = fopen("3.txt", "a"); // 创建文件,使用追加模式 a
    if (f1 == NULL)
	{  
        perror("打开文件失败");  
        return;  
    }  
    for (int i = 0; i < size; i++)     //将数组arr的信息保存到文件中
	{  
        fprintf(f1, "学号:%d 姓名:%s 语文:%.2lf 数学:%.2lf 英语:%.2lf 物理:%.2lf 化学:%.2lf 生物:%.2lf\n",  arr[i].id, arr[i].name, arr[i].chinese, arr[i].math, arr[i].english, arr[i].physical, arr[i].chemical, arr[i].biological);  
    }  
    fclose(f1); // 关闭文件  
}  
  
//将文件的信息读取到新数组内
void load_stu(stu_t arr[], stu_t brr[], int size)
{  
    FILE *f1 = fopen("3.txt", "r");  
    if (f1 == NULL) 
	{  
        perror("打开文件失败");  
        return;  
    }  
    for (int i = 0; i < size && !feof(f1); i++)
	{  
        fscanf(f1, "学号:%d\t 姓名:%s\t 语文:%lf\t 数学:%lf\t 英语:%lf\t 物理:%lf\t 化学:%lf\t 生物:%lf\n",  &brr[i].id, brr[i].name, &brr[i].chinese, &brr[i].math, &brr[i].english, &brr[i].physical, &brr[i].chemical, &brr[i].biological);  
    }  
    fclose(f1);  
}

标签:f1,arr,%.,--,2lf,brr,day1,stu,IO
From: https://blog.csdn.net/m0_74933801/article/details/142861687

相关文章

  • VS2019/2022配置C++ OpenCV4.10.0环境
    一、下载opencv4.10.0官网链接:https://opencv.org/ 安装的时候记住安装路径,本人安装到E盘 二、新建C++项目1、本人新建C++/CLR.Netframework项目 2、右击打开C++项目属性2.1、添加包含目录 此处本人配置的是绝对地址,拷贝build文件夹到程序目录,然后配置相对地......
  • C(十五)函数综合(一)--- 开公司吗?
    在这篇文章中,杰哥将带大家“开公司”。主干内容部分(你将收获):......
  • 搜狗输入法ng版导入细胞词库过程的简要分析
    今天有点时间,对deepin/uos上的搜狗输入法ng版导入细胞词库的行为做了一下分析,过程如下:1.在属性设置界面,用户选择.scel细胞词库文件,输入法对.scel的文件头进行验证,如果是 401500004443530101,则验证通过,进行下一步操作。然而,在Windows下导入txt文件生成的细胞词库的文件......
  • shell的选择结构
     一、分支结构结合test指令完成一下编程1>判断闰年2>输入一个数判断是否为偶数3>使用test指令实现成绩等级判断90--100A60--89B0-50C其他错误 #!/bin/bash#分支结构结合test指令完成以下编程#1判断是否闰年read-p"请输入年份:"yearif[$((year%4))-eq0......
  • 花指令与anti-debug
    花指令anti-Debugptrace反调试(1)ptrace系统调从名字上看是用于进程跟踪的,它提供了父进程可以观察和控制其子进程执行的能力,并允许父进程检查和替换子进程的内核镜像(包括寄存器)的值。其基本原理是:当使用了ptrace跟踪后,所有发送给被跟踪的子进程的信号(除了SIGKILL),......
  • c++知识点多关键字排序
    在C++中,可以使用std::sort函数结合自定义的比较函数对多关键字进行排序。以下是一个示例代码,演示如何根据两个关键字对结构体进行排序:#include<iostream>#include<vector>#include<algorithm>structItem{intfirstKey;intsecondKey;std::stringname;};//自定......
  • Redis原理篇 之数据结构
    Redis原理篇之数据结构文章目录Redis原理篇之数据结构1动态字符串SDS1.1SDS介绍1.2SDS扩容1.3SDS优点2IntSet2.1IntSet介绍2.2IntSet升级2.3总结3Dict3.1Dict的原理3.2Dict的扩容3.3Dict的收缩3.4Dict的rehash3.5总结4ZipList4.1ZipList原理4.2Zi......
  • ValueError: not enough values to unpack (expected 3, got 2)
    问题描述:mage,contours,hierarchy=cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)ValueError:notenoughvaluestounpack(expected3,got2)具体信息如下:C:\Users\aoqia\anaconda3\envs\yolov5\python.exe C:/Users/aoqia/PycharmProjects/pyt......
  • 配置和管理samba服务器
    samba服务建起了Linux和Windows之间的桥梁,实现了不同系统之间的互通,如复制文件、实现不同操作系统的资源共享。在实际应用中,可以将samba服务器架设成一个强大的文件服务器。在本篇文章中,将实现Linux和Linux之间、Linux和Windows之间的samba服务。地址规划OSIPrehl9.0192.168.96.171......
  • 【DMRI】如何安装,以及如何使用来读取dmri数据
    DIPY是一个用于分析扩散磁共振成像(dMRI)数据的Python库。它提供了多种工具和算法用于dMRI数据的加载、处理、重建、跟踪和可视化。DIPY是开源的,并且是神经影像学分析中使用广泛的软件之一。如何安装DIPY:DIPY可以通过pip或conda进行安装。安装命令如下:使用pip:pipinstall......