zoukankan      html  css  js  c++  java
  • 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.
    ";  
        system("pause"); //暂停一下
        return 0;
    }

  • 相关阅读:
    乔布斯《遗失的访谈》全文:尘封16年的预见
    Java开发超级工具集
    android root权限破解分析
    android linux 命令
    Dom加载让图片加载完再执行
    关于chrome dev tools一些技巧
    1 MySQL基础知识笔记
    教我SQL的老师
    SQL limit和offset的使用
    一次批量复制多个不同结果到剪贴板不用在粘贴文本与被粘贴文本之间反复横跳啦,
  • 原文地址:https://www.cnblogs.com/beautiful-code/p/5239376.html
Copyright © 2011-2022 走看看