1、方法

1.1 获取文件大小

ftell()函数

描述:C 库函数 long int ftell(FILE *fp ) 返回给定流 stream 的当前文件位置。

参数:fp -- 这是指向 FILE 对象的指针,该 FILE 对象标识了流。

返回值:该函数返回位置标识符的当前值。如果发生错误,则返回 -1

声明:下面是 ftell() 函数的声明。

ftell() 函数用来获取文件内部指针(位置指针)距离文件开头的字节数,它的原型为:

long int ftell ( FILE * fp )

ftell函数使用场景1:通过fseek() 将文件内部指针定位到文件末尾,再使用 ftell() 返回内部指针距离文件开头的字节 数,这个返回值就等于文件的大小。

ftell函数使用场景2:随机方式存取文件时 , 使用 fseek 函数来回移动指针 , 不容易确定当前指针位置 , 通过调用 ftell 函数确定指针位置 。

1.2 但是fseek移动到末尾后,还要让他再次指向开头,以便进行文件操作

fseek()函数

fseek
函数名: fseek
功 能: 重定位流上的文件指针
用 法: int fseek(FILE *stream, long offset, int fromwhere);
描 述: 函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移offset个字节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。
返回值: 成功,返回0,否则返回其他值。

 int fseek( FILE *stream, long offset, int origin );

第一个参数stream为文件指针
第二个参数offset为偏移量,整数表示正向偏移,负数表示负向偏移
第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SET
SEEK_SET: 文件开头
SEEK_CUR: 当前位置
SEEK_END: 文件结尾
其中SEEK_SET,SEEK_CUR和SEEK_END和依次为0,1和2.

fseek(fp,100L,0);把fp指针移动到离文件开头100字节处;
fseek(fp,100L,1);把fp指针移动到离文件当前位置100字节处;
fseek(fp,100L,2);把fp指针退回到离文件结尾100字节处。

fseek(fp,0,0);把fp指针移动到离文件开头0字节处;
fseek(fp,0,1);把fp指针移动到离文件当前位置0字节处;
fseek(fp,0,2);把fp指针退回到离文件结尾0字节处。

2、实现

FILE *fp = fopen(filename, "rb");//fp 要以二进制方式打开,如果以文本方式打开,函数的返回值可能没有意义if (NULL == fp) {printf("openFileFailed\n");}/*获取文件字节大小size*/fseek(fp, 0, SEEK_END);//文件指针指向末尾int size = ftell(fp);fseek(fp, 0, SEEK_SET);//文件指针指向开头if(size > 0){printf("size: %d\n",size);}fclose(fp);

C语言文件操作:获取文件中文本的大小(长度)相关推荐

  1. c语言文件操作获取文件位置,C语言文件操作:获取文件内容

    在 C Premier Plus 中看到一个文本处理程序,写的非常精妙,分析一下: #include #include // 要求在命令行中运行程序,并附带文件名作为参数 int main(int a ...

  2. Java操作——获取文件扩展名,去掉文件扩展名

    昨天收邮件,得知要参加一个产品部的会议,猜想,也许是因为我做的这个产品demo问题.于是昨天忙活到凌晨3点半,结果早上一来才知道又被调戏了.发邮件的MM把邮件误发给我了.悲催啊有木有,困啊有木有!自己 ...

  3. java 文件去除扩展名_Java操作——获取文件扩展名,去掉文件扩展名

    昨天收邮件,得知要参加一个产品部的会议,猜想,也许是因为我做的这个产品demo问题.于是昨天忙活到凌晨3点半,结果早上一来才知道又被调戏了.发邮件的MM把邮件误发给我了.悲催啊有木有,困啊有木有!自己 ...

  4. R语言dir函数获取目录中文件或者文件夹名称实战

    R语言dir函数获取目录中文件或者文件夹名称实战 目录 R语言dir函数获取目录中文件或者文件夹名称实战 #基本语法

  5. 文件操作函数java_java中文件的操作

    前言:java的读写操作是学java开发的必经之路,Java.io包中包括许多类提供许多有关文件的各个方面操作.下面就来总结下java的读写操作. 主要内容如下 1.字节流与字符流的区别 2.文件操作 ...

  6. C语言下,获取文件信息 http://qimo601.iteye.com/blog/1517413

    http://qimo601.iteye.com/blog/1517413 C语言下,获取文件信息 博客分类: C/C++ C语言文件信息文件大小  C语言下,如何获取文件的生成时间,日期和文件大小等 ...

  7. java删除相对路径文件夹_Java IO,io,文件操作,删除文件,删除文件夹,获取文件父级目录...

    Java IO,io,文件操作,删除文件,删除文件夹,获取文件父级目录 这里先简单的贴下常用的方法: File.separator //当前系统文件分隔符 File.pathSeparator// F ...

  8. .NET基础-11-ArrayList|Hashtable|File文件操作|Dircetioy文件夹操作|Path路径操作

    集合 ArrayList与Hashtable应为存在拆箱与装箱,所以性能不怎么好,尽量不要使用,而使用泛型集合 可以使用下面的方式输出所消耗的时间 //ArrayList arl = new Arra ...

  9. 今天的码农女孩做了关于文件操作和文件拖拽的笔记 2022/1/21

    文件操作和文件拖拽 文件操作: js有两种机制:一个是事件机制,一个是io机制 文件操作对象: Blob通过二进制数据读取 file读取单个文件对象 fileList读取多个文件对象 fileRead ...

  10. C++ 学习笔记之——文件操作和文件流

    1. 文件的概念 对于用户来说,常用到的文件有两大类:程序文件和数据文件.而根据文件中数据的组织方式,则可以将文件分为 ASCII 文件和二进制文件. ASCII 文件,又称字符文件或者文本文件,它的 ...

最新文章

  1. linux sed 小数点,每天进步一点点——linux——sed
  2. 云服务蓬勃发展,平均年增长率高达28%
  3. 建立数据库的原则(怎样建立一个好的数据库)
  4. java 拼图_功能项目拼图将Java 9引入
  5. VMM2012应用指南之12- 创建自助服务用户并分配云
  6. 动态分配方式计算学生成绩
  7. 第二届数据科学家大会日程发布,9月20-21日在桂林等您~
  8. JSP中include的动态引入和静态引入
  9. 支付宝出征世界杯!白岩松:“中国除了足球队没去,其他都去了”
  10. python从网页提取文本_使用Python进行网页正文提取
  11. 利用电脑玩android版天天连萌刷高分 二,利用电脑玩Android版“天天连萌”刷高分(二)——图像识别...
  12. uni-app 数据上拉加载更多功能
  13. IC在測試生產過程的靜電放電(ESD)擊傷及電性過壓(EOS)現象
  14. nginx配置路径、跨域、本机自定义server_name
  15. 其实袁萌还是挺可爱的
  16. Solr的精确匹配搜索
  17. C++第七次作业(函数_递归与非递归_多文件)
  18. 面向智慧文博的知识图谱构建综述
  19. Web开发之三层架构
  20. [Algorithmic Toolbox学习笔记][week6]0/1 Knapsack Problem

热门文章

  1. 上海宝付:物流发展又要有一批人失业了
  2. 计算机网络---网络层实验
  3. 男人,你学会了惧内文化吗
  4. 福建省大学生计算机一级试题及答案,2014年福建省最新版本计算机一级模拟选择题、(含答案)详解.pdf...
  5. 学习java之路之第一周html
  6. ie退出全屏快捷键_视频剪辑快捷键大全
  7. SCI投稿过程总结、投稿状态解析、拒稿后对策及接受后期相关问答
  8. VBA将一个表格拆分成多个新表格
  9. web服务器稳定测试,web服务器测试脚本 - 漂浮 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  10. 使用css实现3D导航