【C语法学习】18 - fread()函数

文章目录

  • 1 函数原型
  • 2 参数
  • 3 返回值
  • 4 示例

1 函数原型

fread():从与指定流stream相关联的二进制文件中读取数据块储存在str指向的内存空间中,函数原型如下:

size_t fread(const void *ptr, size_t size, size_t count, FILE *stream)

2 参数

fwrite()函数有四个参数:

  1. 参数ptr是指向某内存空间的指针,该内存空间用于储存从文件中读取的数据块;参数ptr类型为void*型,说明ptr可以指向任何数据类型;
  2. 参数size指定了每个从文件读取的数据项的字节大小,类型为size_t(unsigned int)型;
  3. 参数count指定了从文件读取的数据项的个数,类型为size_t(unsigned int)型;
  4. 参数stream是一个指向FILE类型结构的指针;参数stream指定了fread()函数要读取的文件流,等于fopen()函数的返回值。

3 返回值

fread()函数的返回值类型为size_t(unsigned int)型:

  1. 读取文件成功,返回成功读取文件的数据项个数,返回值应等于count;
  2. 读取文件失败,返回值小于count。
1. fread returns the number of full items actually read, which may be less than count if an error occurs or if the end of the file is encountered before reaching count.

4 示例

先写文件后读文件并打印,代码如下所示:

#define SIZE 20int main()
{//int arr1[SIZE] = { 0 };int arr2[SIZE] = { 0 };int count;for (count = 0; count < SIZE; count++){arr1[count] = 2 * count;}//FILE* fp;if ((fp = fopen("1.dat", "wb")) == NULL){printf("Failed to open file.\n");exit(1);}if ((fwrite(arr1, sizeof(arr1), 1, fp)) != 1){printf("Failed to write file.\n");exit(1);}fclose(fp);//if ((fp = fopen("1.dat", "rb")) == NULL){printf("Failed to open file.\n");exit(1);}if ((fread(arr2, sizeof(arr2), 1, fp)) != 1){printf("Failed to read file.\n");exit(1);}fclose(fp);//for (count = 0; count < SIZE; count++){printf("%d\t%d\n", arr1[count], arr2[count]);}return 0;
}

代码运行结果如下图所示:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/132202.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[动态规划] (七) 路径问题:LCR 166.剑指offer 47. 珠宝的最高价值

[动态规划] (七) 路径问题&#xff1a;LCR 166./剑指offer 47. 珠宝的最高价值 文章目录 [动态规划] (七) 路径问题&#xff1a;LCR 166./剑指offer 47. 珠宝的最高价值题目解析解题思路状态表示状态转移方程初始化和填表顺序 返回值代码实现总结 LCR 166. 珠宝的最高价值 题目…

python web框架 flask基础入门教程

python web框架 flask基础入门教程 今天我们写一个flask基础入门教程&#xff0c;当然也会覆盖很多重要的知识点&#xff0c;在这篇博客中&#xff0c;我们主要会讲解如下内容&#xff1a; 1、通过flask框架向web传输和接收参数 2、实现静态图片插入和图书上传 3、实现搭建…

宝塔面板使用Supervisor进程守护插件,配置守护Mysql的操作教程。

本篇文章主要讲解&#xff0c;在宝塔面板中使用Supervisor进程守护插件&#xff0c;配置守护Mysql的操作教程。 作者&#xff1a;任聪聪 日期&#xff1a;2023年11月5日 一、安装守护进程插件 安装插件一、进程守护插件 安装说明&#xff1a;在软件商店中搜索“进程守护”&am…

VC++常用命名法和宏定义

匈牙利命名法规则 一般情况下&#xff0c;变量的取名方式为&#xff1a; <scope_> <prefix_> <qualifier>。 范围前缀_&#xff0c;类型前缀_&#xff0c;限定词。 特殊的类型命名,前缀表示&#xff1a; 类、接口 前缀 类型 例子 备注 Lm Class …

【Vue】使用v-model实现控制子组件显隐

v-model 可以实现双向绑定的效果&#xff0c;允许父组件控制子组件的显示/隐藏&#xff0c;同时允许子组件自己控制自身的显示/隐藏。以下是如何使用 v-model 实现这个需求&#xff1a; 在父组件中&#xff0c;你可以使用 v-model 来双向绑定一个变量&#xff0c;这个变量用于…

2019 ICPC 银川题解(A,H,L)

赛时没发挥好6题金尾&#xff08;rank38&#xff09;&#xff0c;剩下很多能写的题&#xff0c;其中四个dp&#xff0c;傻眼ing The 2019 ICPC Asia Yinchuan Regional Contest A Girls Band Party&#xff08;背包&#xff09; 有点迷惑的题&#xff0c;当时看只要 5 5 5 张…

电脑时间校对怎么做?看这里,分享4个方法!

“我的电脑时间总是和手机的时间不一样&#xff0c;应该是电脑的时间不准确了&#xff0c;想知道大家遇到这种情况时是如何校对电脑时间的呀&#xff1f;” 随着电脑在我们日常生活中的广泛应用&#xff0c;确保电脑时间准确性变得至关重要。电脑时间校对不仅有助于同步文件和通…

爬虫之爬虫介绍、requests模块、携带请求参数、url 编码和解码、携带请求头

爬虫介绍 爬虫是什么&#xff1f; 网页蜘蛛&#xff0c;网络机器人&#xff0c;spider在互联网中 通过 程序 自动的抓取数据 的过程根上&#xff1a;使用程序 模拟发送http请求 ⇢ \dashrightarrow ⇢ 得到http响应 ⇢ \dashrightarrow ⇢ 把响应的数据解析出来 ⇢ \dashr…

小程序如何设置自动预约快递

小程序通过设置自动预约功能&#xff0c;可以实现自动将订单信息发送给快递公司&#xff0c;快递公司可以自动上门取件。下面具体介绍如何设置。 在小程序管理员后台->配送设置处&#xff0c;选择首选配送公司。为了能够支持自动预约快递&#xff0c;请选择正常的快递公司&…

S4.2.4.5 Fast Training Sequence (FTS)

一 本章节主讲知识点 1.1 FTS的用途和实现注意 二 本章节原文翻译 Fast Training Sequence (FTS) 主要用于在L0s->L0跳转的过程中&#xff0c;让Receiver 检测到电气空闲退出&#xff0c;以及实现bit 和 symbol lock。 2.1 Gen1 and Gen2 速率 对于Gen1/2 FTS的组成如下…

自定义element-ui plus 函数式调用,在API,js中直接使用全局组件

npm方式: npm install -D unplugin-vue-components unplugin-auto-import yarn 方式 : yarn add unplugin-vue-components; yarn add unplugin-auto-import; 使用官方的这个&#xff1a; vite.config.js中配置 plugins: [vue(),AutoImport({resolvers: [ElementPlusResolve…

02-Sping事务实现之声明式事务基于XML的实现方式

声明式事务之XML实现方式 开发步骤 第一步: 引入AOP相关的aspectj依赖 <!--aspectj依赖--> <dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>6.0.0-M2</version> <…

docker安装(超详细)

一.引言 本安装教程参考Docker官方文档&#xff0c;地址如下&#xff1a;https://docs.docker.com/engine/install/centos/ 二.卸载旧版docker(第一次安装可忽略) 首先如果系统中已经存在旧的Docker&#xff0c;则先卸载&#xff1a; yum remove docker \docker-client \docker…

电脑投屏到TCL电视鼠标延迟

问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1a; 笔记本电脑使用HDMI投屏到TCL电视&#xff0c;页面显示正常但是鼠标延迟反应太慢了 解决方案&#xff1a; 提示&#xff1a;这里填写该问题的具体解决方案&#xff1a; TCL电视设置中选择图像 → 图像类型改…

Flink源码解析二之执行计划⽣成

JobManager Leader 选举 首先flink会依据配置获取RecoveryMode,RecoveryMode一共两两种:STANDALONE和ZOOKEEPER。 如果用户配置的是STANDALONE,会直接去配置中获取JobManager的地址如果用户配置的是ZOOKEEPER,flink会首先尝试连接zookeeper,利用zookeeper的leadder选举服务发现…

如何处理前端本地存储和缓存

前端本地存储和缓存的处理是一种重要的技术&#xff0c;它可以帮助改善应用程序的性能和用户体验。下面是一些处理前端本地存储和缓存的常用方法&#xff1a; 1. 使用Web Storage API&#xff1a; 这是一种在浏览器中存储数据的方法&#xff0c;包括两种类型&#xff1a;loca…

【漏洞复现】Django -SQL注入漏洞复现(CVE-2019-14234)

感谢互联网提供分享知识与智慧&#xff0c;在法治的社会里&#xff0c;请遵守有关法律法规 复现环境&#xff1a;Vulhub 环境启动后&#xff0c;访问http://192.168.80.141:8000即可看到Django默认首页 漏洞复现 首先登陆后台http://192.168.80.141:8000/admin/&#xff0c;用…

极致性能优化:前端SSR渲染利器Qwik.js | 京东云技术团队

引言 前端性能已成为网站和应用成功的关键要素之一。用户期望快速加载的页面和流畅的交互&#xff0c;而前端框架的选择对于实现这些目标至关重要。然而&#xff0c;传统的前端框架在某些情况下可能面临性能挑战且存在技术壁垒。 在这个充满挑战的背景下&#xff0c;我们引入…

R语言 复习 习题图片

这是日天土申哥不知道从哪淘来的R语言复习知识点图片&#xff0c;大部分内容都是课后习题的答案 加油吧&#xff0c;骚年&#xff0c;考个好分数

注册电气工程师证书挂靠有风险吗?考试难度很高是吗?前景怎么样

一.先说证书挂靠问题&#xff0c;毫无疑问&#xff0c;有风险&#xff0c;远的不说咱说说近的&#xff0c; 比如下面这张图 从上面这张图可以看出来&#xff0c;哪怕是2023&#xff0c;还有陆陆续续的人因为挂靠的问题被处罚&#xff0c;所以我的建议是能不挂就不挂&#xff0c…