当前位置: 首页 > news >正文

(C语言)fread与fwrite详解

1. fwrite函数详解

头文件:stdio.h

函数有4个参数,只适用于文件输出流

作用;将从ptr中拿count个大小为size字节的数据以二进制的方式写到文件流中。返回写入成功的数目。

演示

#include <stdio.h>
int main()
{FILE* pf = fopen("date.txt", "wb");if (pf == NULL){perror("fopen");return 1;}int arr[5] = { 1,2,3,4,5 };int count = sizeof(arr) / sizeof(arr[0]);fwrite(arr, sizeof(arr[0]), count, pf);fclose(pf);pf = NULL;return 0;
}

date.txt文件:

我们以二进制的形式写到文件中去所以显示是乱码。

一会我们可以用fread函数读取再打印出来。接着向下看。

2 fread函数详解

头文件:stdio.h

函数有四个参数,只适用于文件输入流

作用:将文件流中的count个size字节大小的数据以二进制的形式输入到ptr所指向的地址中。

返回值是成功从文件流中读取到的size字节大小的字符数目。和fwrite返回值类似。

演示:

#include <stdio.h>
int main()
{FILE* pf = fopen("date.txt", "rb");if (pf == NULL){perror("fopen");return 1;}int arr[5] = { 0 };int count = sizeof(arr) / sizeof(arr[0]);fread(arr, sizeof(arr[0]), count, pf);for (int i = 0; i < count; i++){printf("%d ", arr[i]);}fclose(pf);pf = NULL;return 0;
}

我们从文件中成功读取到了我们之前以二进制放进去放进去的1,2,3,4,5并打印出来。

当我们不知到文件中有多少个字符是可以用下面的方法将文件全部数据读取出来:

#include <stdio.h>
int main()
{FILE* pf = fopen("date.txt", "rb");if (pf == NULL){perror("fopen");return 1;}int arr[10] = { 0 };int i = 0;//每次读取一个数据,直到读到文件末尾返回值为0,结束读取while (fread(arr+i, sizeof(arr[0]), 1, pf) != 0){i++;}for (i = 0; i < 10; i++){printf("%d ", arr[i]);}return 0;
}

这样就将文件中的1,2,3,4,5读取出来放到了arr数组中去了,并打印了出来。

感谢观看,欢迎在评论区讨论。

相关文章:

  • vue3+vite 模板vue3-element-admin框架如何关闭当前页面跳转 tabs
  • 深入探讨Docker in Docker:原理与实战指南
  • 华为这些一面算法岗面试题!真硬啊。。。
  • C++经典面试题目(十三)
  • 数据结构——lesson12排序之归并排序
  • http 超全状态码
  • Python爬虫之Scrapy框架系列(25)——分布式爬虫scrapy_redis完整实战【ZH小说爬取】
  • Web应急响应
  • typescript 实现RabbitMQ死信队列和延迟队列 订单10分钟未付归还库存
  • 【python】常用函数汇总(持续更新……)
  • loopvar 改动不同版本的影响-基础循环
  • 【Web】NSSCTF Round#20 Basic 个人wp
  • 将jupyter notebook文件导出为pdf(简单有效)
  • 7-294 筛法求素数(埃式筛、欧拉筛)
  • 信号处理--情绪分类数据集DEAP预处理(python版)
  • css选择器
  • input实现文字超出省略号功能
  • Java深入 - 深入理解Java集合
  • js算法-归并排序(merge_sort)
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • VUE es6技巧写法(持续更新中~~~)
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 简析gRPC client 连接管理
  • 两列自适应布局方案整理
  • 聊聊sentinel的DegradeSlot
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 手写一个CommonJS打包工具(一)
  • 算法-图和图算法
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • (2022 CVPR) Unbiased Teacher v2
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)springboot教学评价 毕业设计 641310
  • (转)jQuery 基础
  • (轉)JSON.stringify 语法实例讲解
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .gitattributes 文件
  • .net 7 上传文件踩坑
  • .NET gRPC 和RESTful简单对比
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .NET6实现破解Modbus poll点表配置文件
  • .net访问oracle数据库性能问题
  • ?.的用法
  • ??eclipse的安装配置问题!??
  • @JSONField或@JsonProperty注解使用
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [ vulhub漏洞复现篇 ] Grafana任意文件读取漏洞CVE-2021-43798
  • [AIGC] Java 和 Kotlin 的区别
  • [APIO2015]巴厘岛的雕塑
  • [BUUCTF NewStarCTF 2023 公开赛道] week3 crypto/pwn
  • [C#]C# OpenVINO部署yolov8图像分类模型
  • [caffe(二)]Python加载训练caffe模型并进行测试1
  • [EFI]DELL XPS13 9360电脑 Hackintosh 黑苹果efi引导文件
  • [hdu 1711] Number Sequence [kmp]
  • [HTML]Web前端开发技术29(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页