fread和fwirte函数

【C 语言】文件操作 ( fread 函数 ) 二进制文件读写两个重要的函数 , fread 和 fwrite , fread 用于读取文件 , fwrite 用于写出文件 ;fread / fwrite 函数 既可以操作 二进制文件 , 又可以操作 文本文件 ;getc / putc 函数 , fscanf / fprintf 函数 , fgets / fgets 函数 , 只能用于操作 文本文件 ;fread 函数作用 : 从文件中读取若干字节数据到内存缓冲区中 ;fread 函数原型 : void *buffer 参数 : 将文件中的二进制数据读取 阅读详情

✨✨ 欢迎大家来到莉莉的博文✨✨

 🎈🎈养成好习惯,先赞后看哦~🎈🎈

一、fread函数 ——>从文件流中读取二进制数据到ptr指向的数组

从流(二进制文件)中读取数据块

  • ptr:指向大小至少为 (size*count) 字节的内存块的指针,转换为 void*。
  • size:要读取的每个元素的大小(以字节为单位)
  • count:要读取的元素个数,每个元素的大小为字节
  • stream:指向指定输入流的 FILE 对象的指针。
  •  返回值:如果成功,读取的总字节数为 (size*count),返回成功读取的元素总数。
    如果此数字与 count 参数不同,则表示读取时发生读取错误或到达文件末尾。在这两种情况下,可以分别使用 ferror 和 feof 进行检查。

  • 如果 size 或 count 为零,则该函数返回零,并且 ptr 指向的流状态和内容保持不变。

即从流中读取 count 个元素的数组,每个元素的大小为size,并将它们存储在 ptr 指定的内存块中。

#include <stdio.h>
#include <stdlib.h>
int main()
{
	FILE* pFile = NULL;
	long lSize;
	char* buffer;
	size_t result;
	pFile = fopen("myfile.bin", "rb");
	if (pFile == NULL)
	{ 
		fputs("File error", stderr); 
		exit(1); 
	}

	// obtain file size:
	fseek(pFile, 0, SEEK_END);
	lSize = ftell(pFile);
	rewind(pFile);

	// allocate memory to contain the whole file:
	buffer = (char*)malloc(sizeof(char) * lSize);
	if (buffer == NULL)
	{
		fputs("Memory error", stderr); 
		exit(2);
	}

	// copy the file into the buffer:
	result = fread(buffer, 1, lSize, pFile);
	if (result != lSize) 
	{
		fputs("Reading error", stderr); 
		exit(3); 
	}
	fclose(pFile);
	free(buffer);
	return 0;
}

二、fwrite函数 ——>将ptr指向的数组的内容写入到文件流

fwrite和fread的理解差不多,这里就不多做阐述啦!

#include <stdio.h>
int main()
{
	FILE* pFile = NULL;
	char buffer[] = { 'x' , 'y' , 'z' };
	pFile = fopen("myfile.bin", "wb");
	fwrite(buffer, sizeof(char), sizeof(buffer), pFile);
	fclose(pFile);
	return 0;
}
国产射频直采收发器CX8242KA JESD204C调试 杭州诚芯公司的CX8242KA是国内开发的极少数支持JESD204C接口的高速AD、DA,Serdes具备支持接收和发送,并且速率可以到25Gbps,在国内属于领先水平。250M参考时钟输入,AD采样率2.5G,DA采样率10G,3收2发,主通道模式4,反馈通道模式1,基带采样率1250M,线速率20.625G,收发同时配置混频625M。CX8242KA的204C接口模式支持10种模式,在手册上都有说明。2、 支持TX信道编码,RX信道解码,提升健壮性。这里使用模式4,支持双通道模式,并且反馈开启。 阅读详情

相关推荐

避坑指南:STM32定时器测PWM频率占空比时,那些CubeMX没告诉你的细节(蓝桥杯真题衍生)

本文深入解析STM32定时器测量PWM频率和占空比时的关键细节,揭示CubeMX配置中未明确的时钟树原理和输入捕获机制。针对蓝桥杯嵌入式赛题中的常见问题,提供动态调整预分频器、多采样数字滤波等实战解决方案,帮助开发者避免测量误差,提升PWM测量精度和稳定性。

weixin_28692153的博客 339

fread函数的用法

fread 函数的工作原理是从打开的文件流 stream 中读取 size * count 个字节的数据,并将其存储到指定的内存缓冲区 ptr 中。在此示例中,fread 从名为 "data.bin" 的二进制文件中读取了5个整数,并将它们存储在整数数组中。请注意,您应该检查 fread 的返回值来确保成功读取了所需的元素数量,以及使用错误处理来处理潜在的问题。stream:指向已打开的文件的指针,文件必须以二进制模式打开(使用 "rb" 或 "wb" 等标志)。count:要读取的元素的数量。

sun13212715744的博客 8692

国产操作系统应用迁移与适配

了解国产操作系统的背景及意义

2301_77609559的博客 2676

C- fread() & fwrite()

fread()是 C 语言中的标准库函数,用于从文件或流中读取数据。它是一个非常强大且通用的函数,经常用于读取二进制文件,但也可以用于读取文本文件。

青衫客36的博客 2258

从调节阀到步进电机:图解位置型PID与增量式PID的核心区别

本文深入解析了位置型PID与增量式PID的核心区别。通过调节阀和步进电机的实例,阐明位置式PID输出绝对位置,适用于直接控制执行机构;而增量式PID输出位置变化量,天然支持无扰动切换,更适合步进电机等场景。文章重点剖析了增量式PID在系统安全与平滑切换方面的关键优势。

weixin_29051811的博客 356

ZEMAX优化方法---【Zemax学习】

在光学系统自动设计中,优化设计是光学设计中的重要阶段,也是ZEMAX软件的核心功能,涉及评价函数、权因子、阻尼因子等重要概念。在常用的阻尼最小二乘法优化设计的基础上,ZEMAX给我们提供了三种优化选择:Optimization(局部优化)、Global Search(全局优化)和 Hammer Optimization(锤形优化)。

yh的博客 4447

fread函数简介

fread函数是从文件流中读取数据。 头文件:#include "stdio.h" fread函数用于从文件流中读取数据,其函数原型为: size_t fread(void* buffer, size_t size, size_t count, FILE*stream); 【参数设置】 1)  buffer为接收数据的地址,对于fread来书是要读出数据的地址,即数据保存的地址

易大飞 3万+

STM32硬件SPI调试ADS1256的3个致命坑,CubeMX配置避坑指南

本文深入解析STM32硬件SPI调试ADS1256高精度ADC芯片时常见的3大配置陷阱,包括SPI时钟频率、时钟极性与相位、数据字节序等关键问题。通过CubeMX实战配置指南和实测数据对比,提供稳定可靠的解决方案,帮助开发者避免常见错误,提升采样精度和系统稳定性。

weixin_42550597的博客 346

fread函数详解

函数原型: size_t fread( void *buffer, size_t size, size_t count, FILE *stream ) buffer 是读取的数据存放的内存的指针(可以是数组,也可以是新开辟的空间,buffer就是一个索引) size 是每次读取的字节数 coun...

weixin_30617797的博客 6909

TI毫米波雷达人体生命体征(呼吸、心跳)信号提取算法(IWR6843ISK+DCA1000EVM)

本篇内容介绍的算法主要为传统的提取算法,但可实现在1m内呈现良好的检测效果,能够提取出非常可观的呼吸和心跳波形,但在超出1m的距离后便不适用这个算法了。远距离检测呼吸和心跳始终是这个领域一个很大的挑战。要实现远距离检测可在提取相位信号、分离呼吸和心跳信号上进行改进处理,例如线性解调提取相位、改进的VMD分离呼吸和心跳算法。

m0_61934621的博客 3万+

全新YOLO26有效涨点改进专栏目录 | 本专栏持续更新500+篇内容 | 包含各种卷积、主干网络、各种注意力机制、检测头、损失函数、小目标检测改进、二次创新模块、独家创新等几百种创新点改进

🔥《2026年YOLO26改进专栏》🔥 🚀持续更新500+最前沿创新改进点(顶会顶刊论文/独家创新策略),涵盖主干网络、各种卷积、注意力机制、检测头等模块,助力科研论文发表与模型性能提升,支持检测/分割/分类任务。订阅即获完整可运行项目,提供专业QQ答疑群,适合科研发论文(SCI/CCF/核心)及工业应用(PCB/医学/遥感检测)。专栏价格将逐步上涨,早订更优惠! ⭐特色:非计算机专业友好、模块可自由组合、全网独家创新;📌适用:研究生大论文和小论文创新、小目标检测、多领域科研应用,满足不同研究需求。

Ai缝合怪、助力小伙伴高效发论文 5098

fwirte和fread函数

都是全缓存函数 fread和fwrite函数 size_t fread(void *ptr,size_t size, size_ number,FILE *stream); size_t fwrite(const void *ptr,size_t size, size_ number,FILE stream); 功能:全缓存的读写函数 第一个参数 buf:写的内容 第四个参数 fp:写到哪里去...

优快云desasdf的博客 999

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

C语言 文件输入/输出(fopen、fread、fwirte、fclose)

1.文件的概念 文件是当今计算机系统不可或缺的一部分。文件用于存续我们自己写的程序,创建的文档、照片、视频等一些信息。作为程序员必须要熟悉文件的创建、从文件读取数据等操作。例如对一个txt文件操作要经过几个步骤:创建、打开、读取显示内容、关闭txt文件。 2.文件通信和写文件的流程 c语言提供I/O函数可以进行文件通信,读取文件信息或者把信息写入文件中。 流程:应用程序空间->内核空间-&g...

chen1415886044的博客 3907

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

C语言-常见文件操作函数详解(fgetc,fputc,fgets,fputs,fscanf,fprintf,fread,fwrite)

希望文章能够给到初学的你一些启发~ 如果觉得文章对你有帮助的话,支持一下笔者吧~

Larry的博客 3079

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

十一章——3 文件 函数

C语言文件

unicornnnqz的博客 213

C语言——fwirte和fread的(2)

#include<stdio.h> #include<stdlib.h> #include<time.h> #include<string.h> struct student { int score; char name[10]; int data; }; int main() { //打开文件 FILE *fp= fopen("C:\\Users\\ASUS\\Documents\\HBuilderProjects\\op.txt",

weixin_46381608的博客 226

C语言: fwrite和fread函数的用法小结

转自:https://blog.youkuaiyun.com/Curly_Chen/article/details/51610886 fwrite和fread是以记录为单位的I/O函数,fread和fwrite函数一般用于二进制文件的输入输出。   [cpp] view plain copy   #include &lt;stdio.h&gt;   size_t fread(void *ptr, ...

lv0918_qian的博客 1万+

fwirte和fread文件拷贝

运行后创建新文件内容:

weixin_56438742的博客 165

fread函数和fwrite函数

fread函数和fwrite函数 2010年06月28日   In fact, a good percentage of the total code in a program consists of nothing but error checking. /* 人生就像一盒巧克力,你永远也不知道你将得到什么.你只有亲自去品味她的苦涩和缠绵.我们在平淡中体味彼此的真实.在明媚的月光下,在...

kbf542ka 154

fread与fwrite函数

说明:只供学习交流,转载请注明出处   fread函数: 功能:从一个流中读取数据。   头文件 #include 函数原型 int fread(void *ptr, int size, int  nitems, FILE *stream); 返回值 成功 失败 读取的元素个数

angelo 1351

c语言中fwirte函数的使用方法示例

点击上方蓝字关注我,了解更多咨询1、fwrite函数用于将缓冲区数据写入文件,并返回成功写入文件的元素数。如果出现错误或到达文件末尾,可能小于nmemb。2、fwrite函数不区分文件的尾部和错误,因此调用者必须使用feof和ferror来判断发生了什么。实例#include<stdio.h> #include<string.h> int...

轻松学C语言 5482

函数fgets和fputs、fread和fwrite、fscanf和fprintf用法小结

字符串读写函数fgets和fputs:

素事的专栏 4181

C++文件读写函数之——fopen、fread和fwrite、fgetc和fputc、fgets和fputs、ftellf和fseek、rewind

(1)fopen()函数:打开文件 包含头文件:#include 格式:FILE * fopen(const char * path,const char * mode); 参数: path:需要打开的文件路径 mode:文件打开方式,具体如下 r 以只读方式打开文件,该文件必须存在。 r+ 以可读写方式打开文件,该文件必须存在。 rb+ 读写打开一个二进制文件,允许读数据

u014367153的博客 1039

Day 19 fgetc, fgets, fputc, fputs, fread, fwrite, 编写一个拷贝命令,在系统中可以调用,,,

1.umask 0002(此处第一个0代表二进制) 掩码值,设置文件权限时会涉及,如果文件权限在创造文件的时候设置为 0666, 实际出来的结果为 0664 因为会减掉 0002. 2.整行对齐,在命令模式下 V -> G -> = 3.//stdin 标准输入键盘 //stdout 标准输出屏幕 //stderr 标准错误 4.文件描述符,其实就是一个整型数,当用系统函数 open(...

nihap123456的博客 185

7.26作业

1.使用fwirte和fread 拷贝文件。2.使用fgets计算文件行数。

werwer544的博客 292

linux fread buf大小,【linux--菜鸟学习之路】fread和fwrite

#include "stdio.h"//#include "unistd.h"int main(int argc, char *argv[]){FILE *src_fp , *des_fp;//定义指向源文件和目标文件的指针int read_ret;char read_buf[128]={0};//char buf[]="hello linux";if(argc<3){printf("src...

weixin_34883242的博客 274
上一篇: 文件的顺序读写——顺序读写函数——fgets、fgetc、fputs、 fputc
下一篇: 编译和链接
大力初奇迹
博客等级 码龄3年 1294粉丝 54原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值