读书共享 Primer Plus C-part11

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

关于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=

时间: 2024-08-09 19:47:40

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

读书共享 Primer Plus C-part 7

第十章  数组和指针 1.关于二维数组跟指针 #include<stdio.h> int main() { int arrs [3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; int i = 0; for(i=0;i< 10 ;i++) { printf("%d \n",**arrs+i); } } 上述代码:可以说明二维数组的指针的排序以及使用 按行打 #include<stdio.h> int main() { in

读书共享 Primer Plus C-part 9

第十二章 存储类.链接和内存管理                                                       针对代码块中的static变量做如下范本 1 #include<stdio.h> 2 3 void test_static() 4 { 5 int dy = 1; 6 static int static_int =1; 7 printf("%d %d \n",dy++,static_int++); 8 9 } 10 11 12 int

读书共享 Primer Plus C-part 8

  第十一章 字符串和字符串函数 关于strcpy和strncpy 简单说含n的相对于不含会检测数据段的大小使得数据段可控.--也可以简单的认为带n的相比较不带的更加安全可靠 snprintf() 与printf功能相差不大,最大的区别在于printf是将字符串打印到屏幕 char str[100]; char name[]="liuchuanwu"; int i = 100; snprintf(str,"%d , -- %s--."i,name);

读书共享 Primer Plus C-part 12

第十四章 结构和其他数据形式 1.关于上struct与union 的区别 1 #include<stdio.h> 2 3 typedef union Book_u 4 { 5 int pags; 6 int money; 7 int num; 8 }Book; 9 10 int main() 11 { 12 Book book = {.pags=101,.money=11,.num=1}; 13 14 printf("%d %d\n",book.pags,book.num)

读书 | C++ Primer 笔记(二)

我一直都不知道,原来类成员是可以有默认初始化值的,我一直以为只有在构造函数才能够初始化,万万没想到啊. 1 class Sales_data 2 { 3 public: 4 Sales_data() = default; 5 6 Sales_data(int n) : 7 value_(n) 8 { 9 10 } 11 12 void print() 13 { 14 std::cout << value_ << std::endl; 15 } 16 private: 17 int

项目团队总结--收获

软件工程这门课以接近尾声,但我们的激情还未结束,有点意犹未尽的感觉,这门课是我上大学以来认为最奇葩的一门,老师教学的方式独具一心,让我们收获了很多,下面让我们来具体回顾下我们dreamcather-逐梦者团队的一些历程,一些经历,既有酸苦又有喜悦. 当初由于建明老师要求团队开发,我们6个走到了一起,说到这还有个小插曲,由于小兰和真真说加入我们宿舍组成一个团队(其实那时候我们还没有分组的),就这样6人组成了一个团队,对于团队的项目我们讨论了好几次,有的说做读书共享网站,有的说做客户端,有的说做个占

2016年创意秀

1. 写代码直播,live coding 2. 断舍离:做一个app帮你丢掉不要的东西 3. 失恋app 4. 每个人的歌单书单,共享给别人,需要自己的信息质量高来换取 5. 目标:慰藉都市人做一档美食节目,用拍电影的手法,器材不要太好,食材也普通,所有人不说话,但是炒菜的声音必须有.一个人背着瑞士军刀的包坐地铁,眼神空洞,偷看美女.每个视频有一句话,出处是从一本书里出来的.找七毛来做运营 6. 信息聚焦,一天推一条信息 7. 最大的社交,是和自己社交满足一个人可以在厕所发疯唱歌,写字的app

ANSI_common-lisp

前言 本书的目的是快速及全面的教你 Common Lisp 的有关知识.它实际上包含两本书.前半部分用大量的例子来解释 Common Lisp 里面重要的概念.后半部分是一个最新 Common Lisp 辞典,涵盖了所有 ANSI Common Lisp 的操作符. 这本书面向的读者 ANSI Common Lisp 这本书适合学生或者是专业的程序员去读.本书假设读者阅读前没有 Lisp 的相关知识.有别的程序语言的编程经验也许对读本书有帮助,但也不是必须的.本书从解释 Lisp 中最基本的概念

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

读书笔记之:C++ Primer (第4版)及习题(ch12-ch18) [++++] 第12章 类 1. 类的声明与定义:前向声明,不完全类型 2. 从const函数返回*this 3. 可变数据成员mutable 4. 用于const对象的构造函数:构造函数不能声明为const 5. 构造函数初始化式 构造函数的执行分为两个阶段:初始化阶段和普通的计算阶段 6. 构造函数初始化列表 7. 默认实参与构造函数 8. 类通常定义一个默认构造函数,不然的话使用起来会很麻烦. 9. 使用默认构造函数