我是靠谱客的博主 着急睫毛膏,最近开发中收集的这篇文章主要介绍使用C++数据流处理文件时获得实际数据大小,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

微软的VC中对于文件操作的类CFile中有个成员函数Read,返回值为实际读取数据大小。对于需要循环读取文件的处理来说,可以通过判断实际读取的数据大小来处理最后剩下来的数据。但是,如果使用C++的数据流方式来处理文件时,你会发现read返回值是*this,而不是读取数据的实际大小。也没有其他对应的函数能得到当前实际读取数据的大小。但是我在网上找到一种替代方式:

ifstream ifs( " d:/test " );                        //  要处理的文件
ifs.read(( char * )buffer, bufSize);           //  按照指定的大小bufSize读取文件内容
int  getLen  =  ifs.gcount();                    //  实际读取数据大小

 

另外得到文件大小的方式如下:

 

ofstream ofs( " d:/666 " , ios::binary);     //  要处理的文件
ifs.seekg ( 0 , ios::end);                          //  文件指针指向末尾
int  length  =  ifs.tellg();                            //  得到文件的长度
ifs.seekg ( 0 , ios::beg);                          //  文件指针回到文件首部

 

最后

以上就是着急睫毛膏为你收集整理的使用C++数据流处理文件时获得实际数据大小的全部内容,希望文章能够帮你解决使用C++数据流处理文件时获得实际数据大小所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部