c语言学习之基础知识点介绍(十七):写入读取结构体、数组、结构体数组
2015-11-06 15:50
549 查看
一、结构体的写入和读取
//写入结构体 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("写完了\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); }
三、结构体数组的写入和读取
//结构体数组的写入 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个天王最帅\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); }
相关文章推荐
- C语言习题1
- 谁说C++语言超级难学?师兄教你四招搞定C++
- 内存的申请与释放
- C语言:存取结构体成员的点运算符(.)和箭头运算符(->)的区别
- [BCB] C++ BUILDER 绘图 随机生成图形
- RSA算法详解及C语言实现
- c语言学习之基础知识点介绍(十六):文件操作
- C++, Java和C#的编译过程解析
- c++输入输出格式的控制
- C语言免安装TCC编译环境的搭建
- C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区
- 插入排序
- Leetcode NO.299 Bulls and Cows
- C语言文件与目录(五)文件锁
- C语言五个常用的调试宏
- C++Builder及VC的DLL相互调用
- VS项目属性的一些配置项的总结(important)
- 《C++ primer》英文第五版阅读笔记(十)——vector类型
- Java调用C/C++ API 讲解及代码示例
- 今天工作需要调用一个c++程序,以给那个程序发送请求的方式,遇到了跨域问题