C结构体数组的应用

简介: #include //定义结构体存储学生成绩信息 struct address_list{ char name[10]; char adr[20]; char tel[15]; } info[100]; void save(char *name...
#include <stdio.h>


//定义结构体存储学生成绩信息
struct address_list{
    char name[10];
    char adr[20];
    char tel[15];
} info[100];

void save(char *name, int n){
    FILE *fp;
    int i;
    fp = fopen(name, "wb");
    if(fp == NULL){
        printf("cannot open file %s\n", name);
        exit(0);
    }
    for(i=0; i<n; i++){
        if(fwrite(&info[i], sizeof(struct address_list),1,fp)!=1){
            printf("file write error\n");
        }
    }
    fclose(fp);
}


void show(char *name, int n){
    FILE *fp;
    int i;
    fp = fopen(name, "wb");
    if(fp == NULL){
        printf("cannot open file %s\n", name);
        exit(0);
    }
    for(i=0; i<n; i++){
        fread(&info[i], sizeof(struct address_list),1,fp);
        printf("%15s%20s%20s\n", info[i].name, info[i].adr, info[i].tel);
    }
    fclose(fp);
}

int main(){
    int i, n;    
    char filename[50] ;
    printf("how many ?\n");
    scanf("%d", &n);    //输入学生数
    printf("please input filename:\n");
    scanf("%s", filename);    //输入文件路径和名称
    printf("please input name, address, telephone:\n");
    for(i=0; i<n; i++){
        printf("NO%d", i+1);
        scanf("%s%s%s", info[i].name, info[i].adr, info[i].tel);
        save(filename, n);    //调用save 
    } 
    show(filename, n);    //调用show 
    return 0;
}

 

目录
相关文章
|
3天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
303 100
|
4天前
|
JSON fastjson Java
FastJson 完全学习指南(初学者从零入门)
摘要:本文是FastJson的入门学习指南,主要内容包括: JSON基础:介绍JSON格式特点、键值对规则、数组和对象格式,以及嵌套结构的访问方式。FastJson是阿里巴巴开源的高性能JSON解析库,具有速度快、功能全、使用简单等优势,并介绍如何引入依赖,如何替换Springboot默认的JackJson。 核心API: 序列化:将Java对象转换为JSON字符串,演示对象、List和Map的序列化方法; 反序列化:将JSON字符串转回Java对象,展示基本对象转换方法;
|
4天前
|
缓存 JavaScript 前端开发
JavaScript 的三种引入方法详解
在网页开发中,JavaScript 可通过内联、内部脚本和外部脚本三种方式引入 HTML 文件,各具适用场景。本文详解其用法并附完整示例代码,帮助开发者根据项目需求选择合适的方式,提升代码维护性与开发效率。
196 110
|
5天前
|
Android开发 开发者 Windows
这是我设计的一种不关机,然后改造操作系统的软件设计思路2.0版本
本文介绍了在不重启系统的情况下实现操作系统改造的两种方案。第一种方案通过SLFM Recovery模式,在独立于操作系统的最高权限环境下完成系统更新与改造,并支持断电恢复与失败回滚。第二种方案采用多分区机制,通过SLFM套件在独立分区中完成系统改造,适用于可中断与不可中断服务场景,确保系统更新过程的安全与稳定。
230 132