微软的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++数据流处理文件时获得实际数据大小内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复