fread函数_fread读取数据到数组

fread函数_fread读取数据到数组详解fread函数

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

函数原型:
size_t   fread(   void   *buffer,   size_t   size,   size_t   count,   FILE   *stream   ) 

 
buffer   是读取的数据存放的内存的指针(可以是数组,也可以是新开辟的空间,buffer就是一个索引)   
    size       是每次读取的字节数  
  count     是读取次数  
  strean   是要读取的文件的指针  


 
例如   从文件fp里读取100个字节   可用以下语句  

   

  fread(buffer,100,1,fp)  

  fread(buffer,50,2,fp)  

  fread(buffer,1,100,fp)   

**************************************************************************************    

对读出的二进制流是不能用strlen()或者sizeof()求其长度和大小的。
**************************************************************************************
fread可以读二进制文件,有时用字符方式去读文件不能读完整个文件,但是二进制方式就可以 。
这就是因为字符方式用特定的标记结尾的,读取时只要碰到该标记就自动结束

函数fread()读取[num]个对象(每个对象大小为size(大小)指定的字节数),并把它们替换到由buffer(缓冲区)指定的数组. 数据来自给出的输入流. 函数的返回值是读取的内容数量…

使用feof()或ferror()判断到底发生哪个错误. 

上一段代码:

void HelpMassage()
{
	FILE *fp;
	int size = 0;
	char *ar ;

	//二进制方式打开文件
	fp = fopen("lining.txt","rb");
	if(NULL == fp)
	{
		printf("Error:Open input.c file fail!\n");
		return;
	}

	//求得文件的大小
	fseek(fp, 0, SEEK_END);
	size = ftell(fp);
	rewind(fp);

	//申请一块能装下整个文件的空间
	ar = (char*)malloc(sizeof(char)*size);

	//读文件
	fread(ar,1,size,fp);//每次读一个,共读size次

	printf("%s",ar);
	fclose(fp);
	free(ar);

	printf("按任意键继续");
	getchar();
	getchar();
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194275.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java基础语法(九)某些类的基操,注意,这真的只是基操!

    Java基础语法(九)某些类的基操,注意,这真的只是基操!

    2021年5月17日
    141
  • 在线难例挖掘(OHEM)[通俗易懂]

    在线难例挖掘(OHEM)[通俗易懂]OHEM(onlinehardexampleminiing)详细解读一下OHEM的实现代码:defohem_loss(batch_size,cls_pred,cls_target,loc_pred,loc_target,smooth_l1_sigma=1.0):”””Arguments:batch_size(int):…

    2022年5月30日
    85
  • 小米网关一二三代的区别【转载】网关,mesh ,zigbee「建议收藏」

    小米网关一二三代的区别【转载】网关,mesh ,zigbee「建议收藏」小米智能家居北京小米科技有限责任公司索要资料  一般一个网关覆盖150平米的房子没什么问题,但是如果设备离网关太远,同时又隔了两三堵墙,中间又没有其它设备,那就会有点问题(zigbee设备每个设备之间是可以桥接信号的,它会自动选取信号最好的路径)。所以,一般一个房子一个网关就够了。如果是大房子,网关最好放房子中间位置,先买一个网关,如果信号不够,再买多一个。下面我们就来简单的介绍一下小米网关一二三代的区别!小米网关一二三代的区别  小米多功能网关一代二代和三代有什么区别?最直观的区别在于小米多功能

    2022年8月11日
    8
  • xshell安装步骤_Xshell6

    xshell安装步骤_Xshell6开发环境部署目的:利用ssh远程登陆服务器(在windows系统下远程连接linux)下载XSHELL7XSHELL7下载网址:https://www.netsarang.com/zh/xshell/点击“下载”点击“免费授权界面”以上是XSHELL7的下载过程然后找到右键“以管理员身份运行”一上来会出现这种错误,先点击“是(Y)”过程中一直点击“下一步”,以及“我同意”类似的,然后选择个安装路径就可以没啥特殊的。到最后一切顺利的话会显示下面这样的界面一般通向成功的道

    2025年10月13日
    4
  • struts2原理及创建struts工程步骤

    struts2原理及创建struts工程步骤

    2021年7月18日
    63
  • 干净卸载mysql,个人亲测,这一次终于成功了

    干净卸载mysql,个人亲测,这一次终于成功了(一)卸载面板中的数据库二、卸载过后,删除文件夹中的mysql,如删除C:\ProgramFiles(x86)\MySQL该目录下剩余了所有文件,把mysql文件夹也删了三、windows+R运行“regedit”文件,打开注册表四、删除注册表:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Ap…

    2022年6月12日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号