C语言文件操作:获取文件中文本的大小(长度)
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语言文件操作:获取文件中文本的大小(长度)相关推荐
- c语言文件操作获取文件位置,C语言文件操作:获取文件内容
在 C Premier Plus 中看到一个文本处理程序,写的非常精妙,分析一下: #include #include // 要求在命令行中运行程序,并附带文件名作为参数 int main(int a ...
- Java操作——获取文件扩展名,去掉文件扩展名
昨天收邮件,得知要参加一个产品部的会议,猜想,也许是因为我做的这个产品demo问题.于是昨天忙活到凌晨3点半,结果早上一来才知道又被调戏了.发邮件的MM把邮件误发给我了.悲催啊有木有,困啊有木有!自己 ...
- java 文件去除扩展名_Java操作——获取文件扩展名,去掉文件扩展名
昨天收邮件,得知要参加一个产品部的会议,猜想,也许是因为我做的这个产品demo问题.于是昨天忙活到凌晨3点半,结果早上一来才知道又被调戏了.发邮件的MM把邮件误发给我了.悲催啊有木有,困啊有木有!自己 ...
- R语言dir函数获取目录中文件或者文件夹名称实战
R语言dir函数获取目录中文件或者文件夹名称实战 目录 R语言dir函数获取目录中文件或者文件夹名称实战 #基本语法
- 文件操作函数java_java中文件的操作
前言:java的读写操作是学java开发的必经之路,Java.io包中包括许多类提供许多有关文件的各个方面操作.下面就来总结下java的读写操作. 主要内容如下 1.字节流与字符流的区别 2.文件操作 ...
- C语言下,获取文件信息 http://qimo601.iteye.com/blog/1517413
http://qimo601.iteye.com/blog/1517413 C语言下,获取文件信息 博客分类: C/C++ C语言文件信息文件大小 C语言下,如何获取文件的生成时间,日期和文件大小等 ...
- java删除相对路径文件夹_Java IO,io,文件操作,删除文件,删除文件夹,获取文件父级目录...
Java IO,io,文件操作,删除文件,删除文件夹,获取文件父级目录 这里先简单的贴下常用的方法: File.separator //当前系统文件分隔符 File.pathSeparator// F ...
- .NET基础-11-ArrayList|Hashtable|File文件操作|Dircetioy文件夹操作|Path路径操作
集合 ArrayList与Hashtable应为存在拆箱与装箱,所以性能不怎么好,尽量不要使用,而使用泛型集合 可以使用下面的方式输出所消耗的时间 //ArrayList arl = new Arra ...
- 今天的码农女孩做了关于文件操作和文件拖拽的笔记 2022/1/21
文件操作和文件拖拽 文件操作: js有两种机制:一个是事件机制,一个是io机制 文件操作对象: Blob通过二进制数据读取 file读取单个文件对象 fileList读取多个文件对象 fileRead ...
- C++ 学习笔记之——文件操作和文件流
1. 文件的概念 对于用户来说,常用到的文件有两大类:程序文件和数据文件.而根据文件中数据的组织方式,则可以将文件分为 ASCII 文件和二进制文件. ASCII 文件,又称字符文件或者文本文件,它的 ...
最新文章
- linux sed 小数点,每天进步一点点——linux——sed
- 云服务蓬勃发展,平均年增长率高达28%
- 建立数据库的原则(怎样建立一个好的数据库)
- java 拼图_功能项目拼图将Java 9引入
- VMM2012应用指南之12- 创建自助服务用户并分配云
- 动态分配方式计算学生成绩
- 第二届数据科学家大会日程发布,9月20-21日在桂林等您~
- JSP中include的动态引入和静态引入
- 支付宝出征世界杯!白岩松:“中国除了足球队没去,其他都去了”
- python从网页提取文本_使用Python进行网页正文提取
- 利用电脑玩android版天天连萌刷高分 二,利用电脑玩Android版“天天连萌”刷高分(二)——图像识别...
- uni-app 数据上拉加载更多功能
- IC在測試生產過程的靜電放電(ESD)擊傷及電性過壓(EOS)現象
- nginx配置路径、跨域、本机自定义server_name
- 其实袁萌还是挺可爱的
- Solr的精确匹配搜索
- C++第七次作业(函数_递归与非递归_多文件)
- 面向智慧文博的知识图谱构建综述
- Web开发之三层架构
- [Algorithmic Toolbox学习笔记][week6]0/1 Knapsack Problem
热门文章
- 上海宝付:物流发展又要有一批人失业了
- 计算机网络---网络层实验
- 男人,你学会了惧内文化吗
- 福建省大学生计算机一级试题及答案,2014年福建省最新版本计算机一级模拟选择题、(含答案)详解.pdf...
- 学习java之路之第一周html
- ie退出全屏快捷键_视频剪辑快捷键大全
- SCI投稿过程总结、投稿状态解析、拒稿后对策及接受后期相关问答
- VBA将一个表格拆分成多个新表格
- web服务器稳定测试,web服务器测试脚本 - 漂浮 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
- 使用css实现3D导航