iOS基础知识:文件流写入读取结构体变量、数组、结构体数组

文件流写入读取结构体变量、数组、结构体数组

#include <stdio.h>//定义结构体

typedef struct{

    

    char name[12];  

    int age;


}Person;


int main(int argc, const char * argv[]) { 

    //写入结构体

    /*

    FILE *fp = fopen("/Users/ios/Desktop/1.data", "w");

    if (fp) {

        //做写入

//        int num = 10;

//        fwrite(&num, sizeof(num), 1, fp);//写入int

        

        Person p = {"小明",16}; //类似于上方代码

        fwrite(&p, sizeof(p), 1, fp);//写入结构体Person

        printf("写完了\n");

   

        fclose(fp);

    }

    */

    //读取结构体

    /*

    FILE *fp = fopen("/Users/ios/Desktop/1.data", "r");

    if(fp){

        

        //做读取

        Person p;

        fread(&p, sizeof(p), 1, fp);

        printf("姓名:%s  年龄:%d\n",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\n");

        

        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\n",fs[i]);

        }

        

        fclose(fp);

    }

    */

    //数组定义语法:类型  数组名[长度] = { 元素1,元素2,元素n };

    //结构体数组的写入

    /*

    FILE *fp = fopen("/Users/ios/Desktop/xxx.1", "w");

    if (fp) {

        Person ps[4] = { {"刘德华",16},{"张学友",17},{"郭富城",18},{"黎明,19} }; //四个结构体,存储在结构体数组中

        fwrite(ps, sizeof(Person), 4, fp);

        printf("第四个天王最帅\n");

        

        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\n",ps[i].name,ps[i].age);

        }

     

        fclose(fp);

    }

    

    return 0;

}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值