• c语言学习之基础知识点介绍(十七):写入读取结构体、数组、结构体数组


    一、结构体的写入和读取

       //写入结构体
        FILE *fp = fopen("/Users/ios/Desktop/1.data", "w");
        if (fp) {
    
    //        int num = 20;
    //        fwrite(&num, sizeof(num), 1, fp);//写入int
    
            Person p = {"苍空",16}; //int num = 20;
            fwrite(&p, sizeof(p), 1, fp);
            printf("写完了
    ");
            fclose(fp);
        }
        
        //读取结构体
        FILE *fp = fopen("/Users/ios/Desktop/1.data", "r");
        if(fp){
            Person p;
            fread(&p, sizeof(p), 1, fp);
            printf("姓名:%s  年龄:%d
    ",p.name,p.age);
            fclose(fp);
        }

    二、数组的写入和读取

    //写入数组
        FILE *fp = fopen("/Users/ios/Desktop/1.xxxx", "w");
        
        if(fp){
            float fs[] = {10.1f,10.2f,10.3f,10.4f,10.5f};//数组名本身就是地址
            fwrite(&fs, sizeof(float), 5, fp);//第二个参数:每个元素的大小,第三个:一共多少块,多少块以数组长度为结果
            printf("haha
    ");
            fclose(fp);
        }
        
        //读取数组
        FILE *fp = fopen("/Users/ios/Desktop/1.xxxx", "r");
        if(fp){
            float fs[5];
            fread(&fs, sizeof(float), 5, fp);
            for (int i =0; i<5; i++) {
                printf("%.1f
    ",fs[i]);
            }
            fclose(fp);
        }

    三、结构体数组的写入和读取

      //结构体数组的写入
        
        FILE *fp = fopen("/Users/ios/Desktop/xxx.1", "w");
        if (fp) {
            Person ps[4] = { {"",16},{"",17},{"",18},{"",14} };
            fwrite(ps, sizeof(Person), 4, fp);
            printf("第1个天王最帅
    ");
            fclose(fp);
        }
        
        
        //结构体数组的读取
        FILE *fp = fopen("/Users/ios/Desktop/xxx.1", "r");
        if (fp) {
            //读取
            Person ps[4];
            fread(ps, sizeof(Person), 4, fp);
            for (int i = 0; i<4; i++) {
                printf("姓名:%s  年龄:%d
    ",ps[i].name,ps[i].age);
            }
            fclose(fp);
        }
  • 相关阅读:
    mysq,oraclel复杂SQL操作汇总
    mysql查询速度慢的分析和解决
    mysql存储引擎介绍
    mysql数据库函数之left()、right()、substring()、substring_index()
    消息中间件之ActiveMQ
    正则表达式过滤url请求
    http请求常见错误状态码
    Ehcache缓存数据
    eclipse运用经验
    MySQL 触发器trigger
  • 原文地址:https://www.cnblogs.com/bobo-pcb/p/4942847.html
Copyright © 2020-2023  润新知