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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux系统nginx启动_电脑更新时重启电脑会怎样

    linux系统nginx启动_电脑更新时重启电脑会怎样Nginx是高性能的web服务器也是非常好用反向代理服务器,可以实现负载均衡,动静分离等策略,在linux下用的非常多。下面是下载地址http://nginx.org/en/download.html安装过程需要对Linux网络和配置yum源的知识比较熟悉下载下来并传入到服务器。第一步是进行解压tar-zxvfnginx-1.13.1

    2022年10月5日
    2
  • JS全局变量和局部变量

    JS全局变量和局部变量全局变量和局部变量在看了一个博主写的关于js全局变量的的介绍后,自己也跟着做了一下,并且记录在这里。原博客地址:谈谈JS的全局变量跟局部变量。博主说的比较详细,也比我的表达好,如果不是没耐心,建议去看看原博主的文章先上一段代码:<scripttype=”text/javascript”>vara=1;functiontest(){ alert(a); a=4; aler

    2022年5月26日
    34
  • Spring Boot 中的异步调用[通俗易懂]

    Spring Boot 中的异步调用[通俗易懂]SpringBoot中的异步调用通常我们开发的程序都是同步调用的,即程序按照代码的顺序一行一行的逐步往下执行,每一行代码都必须等待上一行代码执行完毕才能开始执行。而异步编程则没有这个限制,代码的调用不再是阻塞的。所以在一些情景下,通过异步编程可以提高效率,提升接口的吞吐量。这节将介绍如何在SpringBoot中进行异步编程。要开启异步支持,首先得在SpringBoot入口类上加上@EnableAsync注解:@SpringBootApplication@EnableAsyncpublic

    2022年7月11日
    26
  • C语言assert函数(isspace函数)

    断言assert函数,C语言assert函数完全攻略对于断言,相信大家都不陌生,大多数编程语言也都有断言这一特性。简单地讲,断言就是对某种假设条件进行检查。在C语言中,断言被定义为宏的形式(assert(expression)),而不是函数,其原型定义在&lt;assert.h&gt;文件中。其中,assert将通过检查表达式expression的值来决定是否需要终止执行程序。也就是…

    2022年4月12日
    49
  • springboot框架详解_springboot加载spring框架

    springboot框架详解_springboot加载spring框架一图胜千言:springboot容器启动流程:其中最重要的:运行机制为:springboot事件驱动:详情见:springboot事件驱动与观察者模式(http://www.cnblogs.com/dennyzhangdd/p/8343229.html)springboot启动流程图:分层图:…

    2022年8月21日
    6
  • linux内核编程入门篇_linux内核编程入门

    linux内核编程入门篇_linux内核编程入门Linux内核编程实战经验谈李艳彬01-7-27上午10:45:17当前,在国产自主版权的操作系统这面大旗

    2022年10月8日
    3

发表回复

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

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