博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用fseek和ftell求文件的长度(字节数)
阅读量:4141 次
发布时间:2019-05-25

本文共 1156 字,大约阅读时间需要 3 分钟。

#include
using namespace std;int main(){ int offset; int fromWhere; // 2表示文件结尾 FILE *fp = fopen("myData.txt", "w"); fprintf(fp, "123456"); fclose(fp); fp = fopen("myData.txt", "r"); offset = 0; fromWhere = 2; fseek(fp, offset, fromWhere); cout << ftell(fp) << endl; fclose(fp); cout << "*********************" << endl; int a[10]; memset(a, 0, sizeof(a)); fp = fopen("yourData", "wb"); fwrite(a, sizeof(a), 1, fp); fclose(fp); fp = fopen("yourData", "rb"); fseek(fp, offset, fromWhere); cout << ftell(fp) << endl; fclose(fp); return 0;}

      结果为:

6

*********************
40

 

     在视频中,经常要求视频的帧数,现有foreman_qcif.yuv文件,帧数为300,且看下面程序:(x264中就是这么求的)

#include 
// yuv文件结构体typedef struct yuvFile{ FILE *fp; int width; int height;}YUVFILE;// 获取yuv文件的帧数int getFrameTotalYuv(YUVFILE file){ int frameTotal; int size; if( !fseek( file.fp, 0, SEEK_END ) ) { size = ftell( file.fp ); frameTotal = size/( file.width * file.height * 3 / 2 ); // yuv420 } return frameTotal;}int main(){ YUVFILE file; file.fp = fopen("foreman_qcif.yuv", "rb"); file.width = 176; file.height = 144; printf("%d\n", getFrameTotalYuv(file)); return 0;}

       结果为:300

 

转载地址:http://xnzti.baihongyu.com/

你可能感兴趣的文章
HTTPS那些事 用java实现HTTPS工作原理
查看>>
oracle函数trunc的使用
查看>>
MySQL 存储过程或者函数中传参数实现where id in(1,2,3,...)IN条件拼接
查看>>
MySQL的备份方式
查看>>
为 Key-Value 数据库实现MVCC 事务
查看>>
10 种机器学习算法的要点(附 Python 和 R 代码)
查看>>
不同场景下 MySQL 的迁移方案
查看>>
解决zabbix图中出现中文乱码问题
查看>>
zabbix监控mysql客户端
查看>>
windows文件上传到linux系统的文件内容问题
查看>>
hadoop安装之-sqoop
查看>>
numpy向量加一个常数=向量中的每个值加上这个常数,最后返回一个同维的向量
查看>>
从RNN一步步通俗易懂T理解LSTM
查看>>
多文多面阐述HMM很清晰
查看>>
机器学习算法推导的较好例子
查看>>
loss函数为何选交叉熵
查看>>
院士 人工智能专业理解
查看>>
AttributeError: module 'tensorflow' has no attribute 'random_normal'
查看>>
谷歌视频播放速度调节插件安装方法
查看>>
怎么自学《现代控制理论》
查看>>