• 思想: 要想将文件内容完全装入一个合理的内存空间
  1. 首先要获得文件大小,通过feek(fp,0,SEEK_END)将光标移动到文件尾部,在使用ftell获得当前光标距离文件首部的偏移量就等价于文件的大小f
  2. 其次为了方便文件读写 需要再次使用eek(fp,0,SEEK_SET)将光标恢复到文件首
  3. 申请文件大小+1个堆区内存空间,依次读出指定1获得的文件大小的数据,写入堆区
  4. 可能会乱码 由于fread获得的文件大小会小于实际文件大小,所以将从fread获得的位置开始到实际大小的缓存元素都设为’\0’
int geiFileSize(FILE *fp){int size = 0;fseek(fp,0,SEEK_END);size = ftell(fp);fseek(fp,0,SEEK_SET);//回到文件首return size;
}int main()
{char fileName[50]= "";int fileSize = 0;FILE *fp = NULL;char *buf =NULL;int i =0;gets(fileName);fp = fopen(fileName,"r");if(fp == NULL){perror("fp open error");return -1;}fileSize = geiFileSize(fp);printf("size: %d\n",fileSize);buf = (char*)malloc(sizeof(char)*fileSize+1);//读取文件i = fread(buf,1,fileSize,fp);buf[i] = '\0';//为读取出来的字符串尾部加结束符防止乱码fclose(fp);puts(buf);system("pause");return 0;
}

C-获得文件大小并动态申请内存屏幕打印文件内容小程序相关推荐

  1. C++二维数组动态申请内存

    好久没用C++刷题了,今天早上刷了几条题,感觉很陌生了.怪我,大二下实在太颓废了,没啥作为. 今天更新个关于c++二维数组内存申请的问题,当初作为菜鸟初学指针的时候,还是在这方面有点搞不通的.今天用到 ...

  2. C++学习之路抓紧跑路版(七)-动态申请内存空间

    文章目录 前言 一.如何申请动态内存空间? 二.练习 总结 前言 今天我们来看下在C++中如何动态申请内存空间,不多比比 一.如何申请动态内存空间? 在C++中我们用new/delete来申请和释放内 ...

  3. C语言动态申请内存空间之malloc(),calloc(),realloc()函数

    在C语言中用于动态申请内存空间的函数主要为malloc()函数,calloc()函数,以及realloc()函数,以下主要介绍三个函数的用法,区别以及使用时的注意事项. malloc(),calloc ...

  4. 微信小程序超级占内存_实测:微信小程序究竟会占用多少内存?结果竟然

    上图就是小编微信中已经安装的小程序列表.微信占用的内存空间数据.接下来小编安装两个小程序. 上图就是安装小程序之后的结果,可以看出,安装程序对内存空间影响几乎没有.(可能是极小,小到可以忽略不计.) ...

  5. Vue3+Typescript+Vite 实现动态访问静态图片(含微信小程序端)

    前言:在最近新起的项目中,用到了较新的技术栈vue3.2+vite+ts,跟着网上的写法渐渐上手了,在菜单这一块我按照以往的写法,自己写了一个静态资源数据并用 require 包裹声明, 再以循环的方 ...

  6. C语言动态二维数组,结构体动态申请内存空间

    在C语言中,申请一般数组时,数组大小必须是常量.即使是赋了特定值的变量,也不行,比如:int n=3;int a[3];这样的做法是错误的,我们需要动态申请数组内存,如下申请一个动态整数(int)二维 ...

  7. vector容器动态申请内存的过程_记录一次自定义Allocator profile的过程

    交代背景 最近组里小伙伴通过组播技术实现发送同一报文到多个接收者,Receiver端会申请内存接收UDP数据包并存入指定Queue中,待用户从Queue中取出数据后会将这块内存回收.上述数据发送功能主 ...

  8. C语言动态申请内存空间

    为什么要动态内存申请 1.定义数组的时候数组的长度是预先定义好的,在整个程序中固定不变; 2.但是在实际的编程中,往往会发生这种情况,即所需的内存空间取决于实际输入的数据,而无法预先确定 3.为了解决 ...

  9. 微信小程序超级占内存_6款宝藏微信小程序,简单又实用,节约内存就靠它了...

    目前手机对生活的影响越来越重要,各种APP在生活中扮演着极其重要的角色.但是随着APP功能的增多,所占内存也是越来越大,很多手机都在超负荷运行,这样对手机的使用寿命会大大折损.最开始了解微信小程序是里 ...

最新文章

  1. openoj的一个小比赛(F题解题报告)poj3978(dp+素数筛选)
  2. leetcode算法第7题
  3. 《ASP.NET MVC3高级编程》学习笔记2
  4. ML之Hierarchical clustering:利用层次聚类算法来把100张图片自动分成红绿蓝三种色调
  5. 对MySQL 进行深入学习是非常必要的
  6. server数据库与oracle,浅析Oracle和SQL Server-数据库专栏,ORACLE
  7. PHP中的正则表达式函数preg_
  8. 在朋友圈求助的NTP问题~
  9. C#高级编程(第七版)读书笔记(4)——对象和类型
  10. RDKit化学式 分子式搜索
  11. 对“最大子序列和问题”的一点思考
  12. NB-IoT使用笔记(5)在linux下用python搭建UDP转发服务器扩展NB可访问IP个数
  13. 本地Blast2GO安装
  14. 一篇文章教会你利用Python网络爬虫抓取王者荣耀图片
  15. 网络安全-破解win10开机密码
  16. Java day 31 网络编程和简单练习
  17. openlayers3中,在地图上添加静态边界线
  18. 从捕获的网络流量包提取数据
  19. Flink系列文档-(YY02)-Flink编程基础-入门示例
  20. Linux 下怎么查看服务器的cpu和内存的硬件信息

热门文章

  1. 41、【斯纳克图书馆管理系统】编目流程 [ 准备工作]
  2. mysql灯是红色的_报警指示灯为什么是红色?
  3. 第二章 bean捆绑基础(3节)
  4. 领导都在用的Python有多厉害
  5. 超边际分析不能用计算机,超边际分析方法
  6. 熊市中,值得关注的项目都有这三大特征
  7. java looper_java-无法在某些设备上尚未调用Looper.prepare...
  8. 求html5大佬帮助一下
  9. delphi7 如何加载控件
  10. 好用的小工具(二):网站权重查询小工具