seek和tell的用法–获取文件内容大小(字节)

/*获取文件中存取的数据内容的大小(字节数)

ellg() 和 tellp()
这两个成员函数不用传入参数,返回pos_type 类型的值(根据ANSI-C++ 标准) ,就是一个整数,代表当前get 流指针的位置 (用tellg) 或 put 流指针的位置(用tellp).

 seekg() 和seekp()
这对函数分别用来改变流指针get 和put的位置。两个函数都被重载为两种不同的原型:
seekg ( pos_type position );
seekp ( pos_type position );

使用这个原型,流指针被改变为指向从文件开始计算的一个绝对位置。要求传入的参数类型与函数 tellg 和tellp 的返回值类型相同。

seekg ( off_type offset, seekdir direction );
seekp ( off_type offset, seekdir direction );

使用这个原型可以指定由参数direction决定的一个具体的指针开始计算的一个位移(offset)。它可以是:
ios::beg    从流开始位置计算的位移
ios::cur    从流指针当前位置开始计算的位移
ios::end    从流末尾处开始计算的位移
*/
#include<iostream>
#include<fstream>
using namespace std;
const char * filename="a.txt";
int main()
{
    long l,m;
    ifstream infile(filename,ios::in|ios::binary); //以二进制形式建立一个输入流,与文件a.txt建立关联
    //infile.seekg(0,ios::beg); //定位读指针位置为文件开始
    l=infile.tellg(); //获取当前读指针位置(字节)
    infile.seekg(0,ios::end); //定位读指针位置为文件结尾
    m=infile.tellg(); //获取当前读指针位置(字节)
    infile.close(); //关闭文件
    cout<<"sizeof "<<filename;
    cout<<" is "<<(m-l)<<" bytes.n";  
    system("pause"); //暂停一下
    return 0;
}

seek和tell的用法--获取文件内容大小(字节)
原文链接: https://www.cnblogs.com/beautiful-code/p/5239376.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/229541

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月13日 下午2:22
下一篇 2023年2月13日 下午2:22

相关推荐