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

news2024/11/28 21:05:57

文章目录

  • 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 20

int 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.coloradmin.cn/o/1176586.html

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

相关文章

为什么大家都想找运营类的工作?

为什么大家都想找运营类的工作&#xff1f; 一、入门门槛 随着需求的持续增长&#xff0c;市场上的人员素质难以迅速匹配。在高校中&#xff0c;也难以培养出对口的应届毕业生。因此&#xff0c;许多企业在招聘运营人员时&#xff0c;更倾向于自行培养。对于新人的要求相对较低…

酒水展示预约小程序的效果如何

酒的需求度非常高&#xff0c;各种品牌、海量经销商组成了庞大市场&#xff0c;而在实际经营中&#xff0c;酒水品牌、经销商、门店经营者等环节往往也面临着品牌传播拓客引流难、产品展示预约订购难、营销难、销售渠道单一等痛点。 那么商家们应该怎样解决呢&#xff1f; 可以…

MTK RILD 无法启动问题分析

1、问题背景 Modem识别卡&#xff0c;但是UI无法识别卡&#xff0c;抓取问题机开机Log&#xff0c;发现RILJ一直在找寻RILD&#xff0c;但是无法获取相关服务&#xff0c;因此可以确认RILD Crash或出现异常。 但是在异常Log中搜索RILD&#xff0c;也未见相关关键字Log 2、对比实…

Springboot+vue的导师双选管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的导师双选管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的前后端分离的导师双选管理系统&#xff0c;采用M&#xff08;model&a…

享搭低代码平台:加速费用报销管理系统应用构建的利器

低代码平台的概念与优势 低代码平台是一种应用开发工具&#xff0c;它通过图形化界面和少量编码&#xff0c;使开发人员能够快速构建应用程序。它的优势包括提高开发效率、降低技术门槛、加强协作和灵活性等。 享搭低代码平台实现快速构建费用报销管理系统应用 在享搭低代码…

Web3.0的测试题

任务&#xff1a; 在前端开发一个查询UI&#xff0c;查询当前用户账户的ETH余额和指定ERC20合约中的余额 目标&#xff1a; UI框架指定使用 MUI (https://mui.com)需要查询到当前账户的ETH余额并展示在UI界面上需要输入ERC20合约地址后&#xff0c;查询到到当前账户在此ERC20…

【GEE】6、在 Google 地球引擎中构建各种遥感指数

1简介 在本模块中&#xff0c;我们将讨论以下概念&#xff1a; 如何在 GEE 中重命名图像的波段。如何使用已有的遥感指数。如何使用波段数学生成自己的遥感指数。 一个田地已经灌溉的年数的卫星图像。灌溉水最可能的来源是奥加拉拉含水层。图片来自科罗拉多州霍利奥克附近。资料…

测试开发路线大纲与总结

一、什么是测试开发&#xff1f; 测试开发&#xff08;Test Development&#xff09;是一种结合软件测试和软件开发的角色和实践。测试开发人员负责设计、开发和维护自动化测试工具、测试框架和测试脚本&#xff0c;以支持测试流程的自动化和优化。他们与开发团队和质量保证&a…

云尘靶场 Medium_Socnet 内网为docker 无站代理 不存在gcc的提权方式 解决ldd过高无法执行exp 指定so文件

首先我们可以通过 arp-scan 扫描当前内网中的存活 但是不知道为什么扫不出来 然后我们使用fscan可以获取存活 这里大致扫描只开了22端口 所以我们使用nmap进行信息收集扫描 nmap -sS -sV -A -p- 172.25.0.13通过tcp 进行 版本服务扫描 并且检测系统版本 全端口 这里我们可以…

VUE多语言i18n配置

1、i18n官网 格式化 | Vue I18n 2、安装i18n 8---指版本号 // vue2必须安装8版本的i18n包&#xff0c;vue3必须安装9版本的i18n包。 npm i vue-i18n8 3、卸载i18n npm uninstall vue-i18n 4、安装 js-cookie npm install vue-cookies --save 5、代码 5.1 main.js /…

睿思BI已支持3D图形

从睿思BI旗舰版V5.3开始&#xff0c;系统支持如下3D图形&#xff1a; 3D地球 3D地图 飞线图 3D金字塔 睿思BI采用ThreeJS实现3D功能&#xff0c;用户也可以基于系统接口&#xff0c;采用ThreeJS在数据大屏中实现自己的3D图形。 系统演示地址&#xff1a;睿思BI旗舰版https://…

BI数据可视化:不要重复做报表,只需更新数据

BI数据可视化是一种将大量数据转化为视觉形式的过程&#xff0c;使得用户可以更容易地理解和分析数据。然而&#xff0c;传统的报表制作过程往往需要手动操作&#xff0c;不仅耗时还容易出错。为了解决这个问题&#xff0c;BI数据可视化工具通常会提供一些自动化的数据更新功能…

台灯应该买什么样的才能护眼?一篇学会如果挑选护眼台灯

家里顶灯太暗了且高度太高&#xff0c;还是原始的LED灯&#xff0c;晚上用着眼睛都有点难受&#xff0c;还好遇到了儿童护眼灯。下面小编为大家介绍下儿童护眼灯哪个牌子好&#xff1f;什么护眼台灯比较专业 护眼台灯怎么样选择 1、照度级别 台灯照度级别分为 A 级和 AA 级。…

多模态情感分析——Twitter15和Twitter17数据集

一、原始数据集介绍 数据集链接&#xff1a; https://pan.baidu.com/s/1JLkaSerBgKe--GBaU0ZkFg?pwdfqyo提取码&#xff1a;fqyo 数据集介绍&#xff1a;原始的被划分为了训练集&#xff08;60%&#xff09;、验证集&#xff08;20%&#xff09;、测试集&#xff08;20%&am…

【Java SE】详解数组

前言&#xff1a;在C语言中我们已经学习过数组&#xff0c;接下来&#xff0c;我们再主要学习一下Java中的数组&#xff0c;在Java中&#xff0c;数组变得更加高效和使用。 1. 数组的基本概念 1.1 什么是数组&#xff1f; 数组&#xff1a;可以看成是相同类型元素的一个集合。…

【计算机网络】HTTP 协议

文章目录 前言什么是 HTTP理解 HTTP 请求和响应格式HTTP 的请求格式1. 首行2. 请求头3. 空行4. 正文&#xff08;body&#xff09; HTTP 的响应格式1. 首行2. 响应头3. 空行4. 正文&#xff08;body&#xff09; 首行GET 和 POST 方法有什么区别针对 GET 方法和 POST 方法的区别…

Java——》CAS

推荐链接&#xff1a; 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…

【MongoDB】索引 – 文本索引

一、准备工作 这里准备一些数据 db.books.insertMany([{_id: 1, name: "Java", description: "java 入门图书", translation: [{ language: "english", description: "java basic book" }]},{_id: 2, name: "C", descript…

七年老程序员的九十月总结:上热榜、社区分享

作者简介&#xff1a;张拭心&#xff0c;Android GDE&#xff08;Google Developer Expert&#xff09;&#xff0c;CSDN 博客专家如果感觉博主的文章还不错的话&#xff0c;请三连&#xff08;点赞留言转发&#xff09;支持一下博主哦联系方式&#xff1a;godblesszsx&#xf…

第二证券:政策效应逐步显现 A股修复行情有望持续演绎

上星期&#xff0c;A股商场延续企稳反弹的态势&#xff0c;上证指数震荡上涨0.43%&#xff1b;沪深两市日均成交额回升至8700亿元左右&#xff1b;北向资金近一个月初次转为周净买入5.57亿元。 安排观点一起认为&#xff0c;在稳增加、稳预期相关政策持续发力&#xff0c;上市…