【C 语言】文件操作 ( 按照内存块的方式读写文件 | fread 函数 | fwrite 函数 )
文章目录
- 一、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 函数 )相关推荐
- 【C 语言】文件操作 ( 按照单个字符的方式读写文件 | fgetc 函数 | fputc 函数 )
文章目录 一.文件名路径设置 二.文件打开方式 三.fputc 函数 | 按照字符方式写文件 1.fputc 函数 2.代码示例 四.fgetc 函数 | 按照字符方式读文件 1.fgetc 函数 2 ...
- 【C 语言】文件操作 ( 按照文本行的方式读写文件 | fgets 函数 | fputs 函数 )
文章目录 一.fgets 函数 二.fputs 函数 三.按照文本行的方式写文件 四.按照文本行的方式读文件 一.fgets 函数 fgets 函数 : 从 FILE *stream 指针指向的文件中 ...
- c语言怎样用格式化文件存储,如何用格式化的方式读写文件
对格式会来说,C语言的格式读写文件是很有要求的,在前面我们已经讲解了如何去进行字符的输入输出,但事实真相,数据的类型是很丰富的,而且大家已经熟悉了用printf和scanf函数进行格式化的输入输出,他 ...
- C语言以数据块的形式读写文件
C语言以数据块的形式读写文件 fgets() 有局限性,每次最多只能从文件中读取一行内容,因为 fgets 遇到换行符就结束读取.如果希望读取多行内容,需要使用 fread 函数:相应地写入函数为 f ...
- 文件操作与内存,逆向
文章目录 前言 一.高内聚低耦合 二.文件操作(file) 三.绝对路径和相对路径 总结 前言 目前世界上最主流的字符编码 --> utf-8 一个文件,软件,是用什么编码写的就用什么编码去读取 ...
- C语言文件指针的基本函数介绍包含了fpoen、fclose、fgetc、fputc、fscanf、fprintf、fgets、fputs、fread、fwrite函数以及文件定位函数.
一.打开关闭文件 只打开文件 再关闭文件 #include <stdio.h> #include<stdlib.h> main() {FILE *fp;fp = fopen ...
- JSP中的文件操作:数据流、File类、文件浏览、目录操作、上传下载
文件可以永久地存储信息,从本质上讲文件就是存放在盘上的一系列数据的集合.应用程序如果想长期保存数据,就必须将数据存储到文件中,这就涉及到文件的操作.而在编写网站应用程序的过程中,有许多地方要对文件 ...
- 【Java文件操作(五)】从txt文件中读取字符串、乱码原因
我的博客--Java文件操作系列 [Java文件操作(一)]递归打印文件目录 [Java文件操作(二)]删除文件夹,但保留其内部文件 [Java文件操作(三)]递归复制文件夹内所有文件 [Java文件 ...
- 【Java文件操作(三)】递归复制文件夹内所有文件
我的博客--Java文件操作系列 [Java文件操作(一)]递归打印文件目录 [Java文件操作(二)]删除文件夹,但保留其内部文件 [Java文件操作(三)]递归复制文件夹内所有文件 [Java文件 ...
最新文章
- Foxmail: 错误信息::ssl连接错误, errorCode: 5,各种解决方案的大杂烩。
- 山西大学计算机科学与技术全国排名,山西这所大学曾是国内排名前五,如今排名下滑,有点走下坡路了...
- 【转】C#格式化字符串
- 剑指offer之判断链表是否包含环
- python三引号解析_[宜配屋]听图阁
- jenkins pipeline之如何串联多个Job
- 【题解】最近公共祖先
- mysql清理死链接_对MySQL的死连接Sleep的进程的来源研究
- 树莓派python编程小车_树莓派智能车AlphaBot教程11:Python 网络编程
- knockout + require + director 构建单页面程序(director)
- 系统集成项目管理工程师知识点
- 文献笔记(7)(2017ISSCC 14.3)
- vue开发环境搭建(WebStorm)
- 正则表达式的语法汇总
- 电气绘图软件课程设计
- PageHelper获取数据总条数
- 信息学奥赛一本通 1183:病人排队 | OpenJudge NOI 1.10 08:病人排队
- Web开发工程师的就业前景
- ArcMap打不开ENVI的img格式问题解决
- gluster部署和使用
热门文章
- linux学习笔记-第一课-linux的历史,安装linux,远程连接
- 一个关于native sql的程序
- 【android】【git】Android源代码获取(Windows)
- VBA 的编写与执行
- Python爬虫(一)_HTTP的请求与响应
- @EnableGlobalMethodSecurity(prePostEnabled = true)
- 第44节:Java当中的JVM
- Python做web开发,推荐几个能立马上手的小项目
- 自定义MIME类型支持FLV的相关设置
- Css2.0+Css3.0+jQuery手册 chm