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;
}

时间: 2024-10-09 21:20:12

seek和tell的用法--获取文件内容大小(字节)的相关文章

Java:获取文件内容

文章来源:https://www.cnblogs.com/hello-tl/p/9139353.html import java.io.*; public class FileBasicOperation { /** * 获取文件内容 * @param filePath * @return */ @SuppressWarnings("resource") public String getFileContent(String filePath){ try { File file = n

promise 获取文件内容

文件结构图 { "next":"b.json", "msg":"this is a" } a.json { "next":"c.json", "msg":"this is b" } b.json { "next":"null", "msg":"this is c" }

用fseek和ftell获取文件的大小

#include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int argc,char *argv[]) { int n=0; FILE *fp; if((fp=fopen(argv[1],"r"))==NULL) { perror("fopen"); exit(EXIT_FAILURE); } if(fseek(fp,0,SEEK_END)!=0) {

Delphi获取文件的大小(实际&amp;物理)

源:获取文件的大小(实际&物理) class function TDuoFile.GetFileSize(const AFile: TFileName): Int64; var sr:TSearchRec; begin if FindFirst(AFile,faAnyFile and (not faDirectory),sr) = 0 then Result := sr.Size else Result := 0; FindClose(sr); // Windows.GetFileSizeEx(

获取.propertys文件获取文件内容

导入包 import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.InputStream; import java.util.Properties; String path = this.getClass().getResource("/").getPath(); InputStream in = new BufferedInputStream(new FileInputStre

linux下C获取文件的大小

获取文件大小这里有两种方法: 方法一. 范例: unsigned long get_file_size(const char *path) { unsigned long filesize = -1; FILE *fp; fp = fopen(path, "r"); if(fp == NULL) return filesize; fseek(fp, 0L, SEEK_END); filesize = ftell(fp); fclose(fp); return filesize; } 此

用C#实现获取文件夹大小的源代码

using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FileList { public class Program { public static void Main(string[] args) { Console.WriteLine(); long length

Linux C++获取文件夹大小

项目中要计算指定文件夹的大小.百度查到这篇文章,https://my.oschina.net/Tsybius2014/blog/330628方法可行,运行正确. 拿到我们的项目中,却遇到一些问题:程序中一些读文件的代码,开始报异常,都不到文件.这些都是以前没有遇到过的问题.到底是什么情况呢?排查了好久,终于发现使用该文章提供的计算文件夹大小的函数(暂且叫做GetDirectorySize),其中有改变当前目录的代码: chdir(dir); 我们的项目是多线程的,一个线程调用GetDirecto

PHP下载远程文件及获取文件内容

/**      * 获取远程文件的内容      * @parma $url  URL      * @return 获得内容      * **/     public static function getContent($url){ $flag = 0; do { $hCurl = curl_init(); curl_setopt($hCurl, CURLOPT_HEADER, 0); curl_setopt($hCurl, CURLOPT_RETURNTRANSFER, 1); cur