第十四章结构和其他数据形式

关于fread以及fwrite

  • fread(char* buff,int size,int count,FILE* fp)
  • fwrite(char* buff,int size,int count,FILE* fp)
#include<stdio.h>
#include<string.h> typedef struct book_s
{
int count;
char name[100];
char author[100];
float price; }Book; int main()
{
Book books[3] ;
strcpy(books[0].name,"liuchuanwu0" );
strcpy(books[0].author,"liu chuan wu 0");
books[0].price = 1.00; strcpy(books[1].name,"liuchuanwu1" );
strcpy(books[1].author,"liu chuan wu 1");
books[1].price = 1.00; strcpy(books[2].name,"liuchuanwu2" );
strcpy(books[2].author,"liu chuan wu 2");
books[2].price = 1.02; FILE * fp =fopen("./book.list","a+"); int index ; for(index=0;index<3;index++)
{
fwrite(&books[index],sizeof(Book),1,fp);
} memset(&books[2],0,sizeof(Book));
printf("%s \n",books[2].name);
rewind(fp) ;
fread(&books[2],sizeof(Book),1,fp);
printf("%s \n",books[2].name); }

结果如下:–结构体可以正常的转存入文件,且vim查看存在乱码,但是可以正常的读写 
linux:/home/lcw/code # ./a.out

liuchuanwu0 
linux:/home/lcw/code # cat book.list 
pղKliuchuanwu0¢ÿÿÿÿ¢p¢¢D.ι 
¶ҩ¸@
 
liu chuan wu 0۩h¢.N=

读书共享 Primer Plus C-part11的更多相关文章

  1. 读书共享 Primer Plus C-part 5

    第五章 运算符.表达式和语句 关于+- 的一元运算符和二元运算符的区别 a++:a先创建自身的一个副本,然后a自增1,最后返回副本的值 a+=1: 事实上相当于++a a=a+1: 虽然有点雷同于a+ ...

  2. 读书共享 Primer Plus C-part 7

    第十章  数组和指针 1.关于二维数组跟指针 #include<stdio.h> int main() { ][]={{,,,},{,,,},{,,,}}; ; ;i< ;i++) ...

  3. 读书共享 Primer Plus C-part 8

    第十三章 文件输入/输出 fopen--fclose fopen 是文件的操作的开始 fclose是文件操作的结束 getc--putc getchar--putchar getc对应文件的获取单个字 ...

  4. 读书共享 Primer Plus C-part 12

    第十四章 结构和其他数据形式 1.关于上struct与union 的区别 #include<stdio.h> typedef union Book_u { int pags; int mo ...

  5. 读书共享 Primer Plus C-part 9

    第十二章 存储类.链接和内存管理                                                       针对代码块中的static变量做如下范本 #include ...

  6. 读书共享 Primer Plus C-part 4

    第四章 字符串和格式化输入输出 关于printf -  左对齐 #include<stdio.h> void main() { char str [100] = "liuchua ...

  7. Primer C++第五版 读书笔记(一)

    Primer C++第五版 读书笔记(一) (如有侵权请通知本人,将第一时间删文) 1.1-2.2 章节 关于C++变量初始化: 初始化不是赋值,初始化的含义是创建变量时赋予其一个初始值,而赋值的含义 ...

  8. 读书笔记之:C++ Primer (第4版)及习题(ch12-ch18) [++++]

    读书笔记之:C++ Primer (第4版)及习题(ch12-ch18) [++++] 第12章 类 1. 类的声明与定义:前向声明,不完全类型 2. 从const函数返回*this 3. 可变数据成 ...

  9. 《3D Math Primer for Graphics and Game Development》读书笔记2

    <3D Math Primer for Graphics and Game Development>读书笔记2 上一篇得到了"矩阵等价于变换后的基向量"这一结论. 本篇 ...

随机推荐

  1. Tomcat配置虚拟路径访问容器外的硬盘资源

    问题: 如果tomcat中上传了很多的图片,会导致tomcat启动的时候会慢,所以应该把图片上传到tomcat容器外部 那么,问题来了: tomcat出于安全考虑,禁止了直接访问外部硬盘资源. 解决: ...

  2. Struts 2 标签库及使用

    1  Struts 2 基本的标签属性. 1) name:指定表单元素的名称,该属性与Action中定义的属性相对应. 2) value:指定表单元素的值. 3) required:指定表单元素的必填 ...

  3. 运行android程序的时分出现了No compatible targets were found.Do you wish to.

    这个错误是说明没有android虚拟机,那么新建一个就OK了. 假如出现了这个状况,就点击yes,然后new一个. 具体方案如下,(可自定义.仅供参考)

  4. eclipse 用maven创建web项目

    Eclipse 用maven构建web项目 (2013-01-27 11:05:31) 转载▼ 标签: it eclipse maven spring web 杂谈   一.背景介绍 对于初学者,用m ...

  5. subList ArrayList LinkedList

    List<E> subList(int fromIndex,int toIndex) 该方法返回原有集合从fromIndex 到 toIndex之间一部分数据,组成一个新的集合,这两个集合 ...

  6. linux_RAID

    什么是RAID? 磁盘阵列,把多个磁盘组合成一个磁盘组,在逻辑上看起来就是一块大的磁盘,提供单个物理磁盘的存储量和更高的存储性能,同时提供不同级别的冗余备份的一种技术,不同的RAID技术对应不同级别 ...

  7. Node.js之单利模式

    在iOS中我们经常用到单利模式,这样就能够实现在多处共享同一数据,那么在Node.js中也存在这种模式. 我们知道,Node.js中模块的概念很重要,在写模块的接口的时候,只需要暴露出一个实例对象就能 ...

  8. 流API--流的映射

    很多时候,将一个流的元素映射到另外一个流很有帮助.映射操作最具代表的就是map()方法.实际编码中,我们会经常用到,所以这里专门整理一篇博客. 考虑如下情景,对于一个包含了姓名,电话,年龄等属性构成的 ...

  9. SQL Server中的变更捕获技术--简单部署

    ------准备------ CREATE DATABASE db_test_cdc ,) ,name )); INSERT INTO t1(name)VALUES('test') ------开始- ...

  10. 面试中的Https

    在Http协议中有可能存在信息窃听或身份伪装的安全问题.使用HTTPS通信机制可以有效地防止这些问题. Https Http的缺点 通信使用明文(不加密),内容可能会被窃听. 不验证通信方的身份,因此 ...