您的位置:首页 > 编程语言 > C语言/C++

获得文件长度的标准C++写法

2006-07-17 23:14 483 查看
由于现在的STL实现中流的位置并不是long表示的, 所以不能直接用它来表示文件的长度

转化的办法是把读写指针分别置于文件开头和结尾, 利用streampos提供的减法操作得到文件的字节数

#include <fstream>

using namespace std;

long File_length(char const *pfile)
{
ifstream file(pfile, ios::binary);
if ( !file )
{
cerr<<pfile<<" can not open!"<<endl;
return 0;
}

streampos begin = file.tellg(); //获得开头的位置
file.seekg(0, ios::end); //定位到文件尾部
streampos end = file.tellg(); //获得尾部的位置
file.close();
return (long)(end-begin); //利用streampos的"-"操作得到文件的字节长度
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: