文章目录

  • 一、fwrite 函数
  • 二、fread 函数
  • 三、按照内存块的方式写文件
  • 四、按照内存块的方式读文件

一、fwrite 函数


fwrite 函数 :const void *ptr 指针指向的 内存数据 , 拷贝 size_t size 乘以 size_t nmemb 字节的数据到 FILE *stream 指针指向的文件中 ;

#include <stdio.h>
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)

二、fread 函数


fread 函数 :FILE *restrict stream 指向的文件中 , 读取 size_t size 乘以 size_t count 字节的数据到 void *restrict buffer 缓冲区中 , 返回成功读取的 size_t count 数 , 注意 不是 字节数 , 是 字节数size\cfrac{字节数}{size}size字节数​ 的值 ;

#include <stdio.h>
size_t fread( void *restrict buffer, size_t size, size_t count, FILE *restrict stream );

三、按照内存块的方式写文件


代码示例 :

    // 文件指针FILE *fp = NULL;// 文件路径char *filename = "D:/File/file.txt";// 数组Student students[3] = {0};// 循环控制变量int i = 0;// 初始化结构体数组数据for(i = 0; i < 3; i++){sprintf(students[i].name, "Tom %d", i + 1);students[i].age = 18 + i;}// 以 读写 方式打开 文本文件// 文件如果不存在 , 则创建文件fp = fopen(filename, "wb");// 向文件中写出结构体数组数据fwrite(students, sizeof(Student), 3, fp);// 关闭文件fclose(fp);// 如果没有关闭文件 , 则需要等待文件执行完毕后 , 才能将内存缓存写出磁盘文件中// 命令行不要退出system("pause");return 0;

执行结果 : 每个结构体 242424 字节 , 写出了 333 个结构体 , 最终文件大小 727272 字节 ;


数据内容 :


二进制查看 :

四、按照内存块的方式读文件


代码示例 :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>// 该结构体每个 24 字节
typedef struct Student
{char name[20];int age ;
}Student;/*** @brief 主函数入口* @return*/
int main(int argc, char* argv[], char**env)
{// 文件指针FILE *fp = NULL;// 文件路径char *filename = "D:/File/file.txt";// 数组Student students[3];// 循环控制变量int i = 0;// 以 读写 方式打开 文本文件// 文件如果不存在 , 则创建文件fp = fopen(filename, "r+b");// 向文件中写出结构体数组数据fread(students, sizeof(Student), 3, fp);// 打印结构体数组数据for(i = 0; i < 3; i++){//fread(&students[i], sizeof(Student), 1, fp);printf("%d . name = %s , age = %d\n", i, students[i].name, students[i].age);}// 关闭文件fclose(fp);// 如果没有关闭文件 , 则需要等待文件执行完毕后 , 才能将内存缓存写出磁盘文件中// 命令行不要退出system("pause");return 0;
}

执行结果 :

【C 语言】文件操作 ( 按照内存块的方式读写文件 | fread 函数 | fwrite 函数 )相关推荐

  1. 【C 语言】文件操作 ( 按照单个字符的方式读写文件 | fgetc 函数 | fputc 函数 )

    文章目录 一.文件名路径设置 二.文件打开方式 三.fputc 函数 | 按照字符方式写文件 1.fputc 函数 2.代码示例 四.fgetc 函数 | 按照字符方式读文件 1.fgetc 函数 2 ...

  2. 【C 语言】文件操作 ( 按照文本行的方式读写文件 | fgets 函数 | fputs 函数 )

    文章目录 一.fgets 函数 二.fputs 函数 三.按照文本行的方式写文件 四.按照文本行的方式读文件 一.fgets 函数 fgets 函数 : 从 FILE *stream 指针指向的文件中 ...

  3. c语言怎样用格式化文件存储,如何用格式化的方式读写文件

    对格式会来说,C语言的格式读写文件是很有要求的,在前面我们已经讲解了如何去进行字符的输入输出,但事实真相,数据的类型是很丰富的,而且大家已经熟悉了用printf和scanf函数进行格式化的输入输出,他 ...

  4. C语言以数据块的形式读写文件

    C语言以数据块的形式读写文件 fgets() 有局限性,每次最多只能从文件中读取一行内容,因为 fgets 遇到换行符就结束读取.如果希望读取多行内容,需要使用 fread 函数:相应地写入函数为 f ...

  5. 文件操作与内存,逆向

    文章目录 前言 一.高内聚低耦合 二.文件操作(file) 三.绝对路径和相对路径 总结 前言 目前世界上最主流的字符编码 --> utf-8 一个文件,软件,是用什么编码写的就用什么编码去读取 ...

  6. C语言文件指针的基本函数介绍包含了fpoen、fclose、fgetc、fputc、fscanf、fprintf、fgets、fputs、fread、fwrite函数以及文件定位函数.

    一.打开关闭文件 只打开文件   再关闭文件 #include <stdio.h> #include<stdlib.h> main() {FILE *fp;fp = fopen ...

  7. JSP中的文件操作:数据流、File类、文件浏览、目录操作、上传下载

    ​ 文件可以永久地存储信息,从本质上讲文件就是存放在盘上的一系列数据的集合.应用程序如果想长期保存数据,就必须将数据存储到文件中,这就涉及到文件的操作.而在编写网站应用程序的过程中,有许多地方要对文件 ...

  8. 【Java文件操作(五)】从txt文件中读取字符串、乱码原因

    我的博客--Java文件操作系列 [Java文件操作(一)]递归打印文件目录 [Java文件操作(二)]删除文件夹,但保留其内部文件 [Java文件操作(三)]递归复制文件夹内所有文件 [Java文件 ...

  9. 【Java文件操作(三)】递归复制文件夹内所有文件

    我的博客--Java文件操作系列 [Java文件操作(一)]递归打印文件目录 [Java文件操作(二)]删除文件夹,但保留其内部文件 [Java文件操作(三)]递归复制文件夹内所有文件 [Java文件 ...

最新文章

  1. Foxmail: 错误信息::ssl连接错误, errorCode: 5,各种解决方案的大杂烩。
  2. 山西大学计算机科学与技术全国排名,山西这所大学曾是国内排名前五,如今排名下滑,有点走下坡路了...
  3. 【转】C#格式化字符串
  4. 剑指offer之判断链表是否包含环
  5. python三引号解析_[宜配屋]听图阁
  6. jenkins pipeline之如何串联多个Job
  7. 【题解】最近公共祖先
  8. mysql清理死链接_对MySQL的死连接Sleep的进程的来源研究
  9. 树莓派python编程小车_树莓派智能车AlphaBot教程11:Python 网络编程
  10. knockout + require + director 构建单页面程序(director)
  11. 系统集成项目管理工程师知识点
  12. 文献笔记(7)(2017ISSCC 14.3)
  13. vue开发环境搭建(WebStorm)
  14. 正则表达式的语法汇总
  15. 电气绘图软件课程设计
  16. PageHelper获取数据总条数
  17. 信息学奥赛一本通 1183:病人排队 | OpenJudge NOI 1.10 08:病人排队
  18. Web开发工程师的就业前景
  19. ArcMap打不开ENVI的img格式问题解决
  20. gluster部署和使用

热门文章

  1. linux学习笔记-第一课-linux的历史,安装linux,远程连接
  2. 一个关于native sql的程序
  3. 【android】【git】Android源代码获取(Windows)
  4. VBA 的编写与执行
  5. Python爬虫(一)_HTTP的请求与响应
  6. @EnableGlobalMethodSecurity(prePostEnabled = true)
  7. 第44节:Java当中的JVM
  8. Python做web开发,推荐几个能立马上手的小项目
  9. 自定义MIME类型支持FLV的相关设置
  10. Css2.0+Css3.0+jQuery手册 chm