ifstream java_使用ifstream :: seekg和tellg获取文件大小

ifstream java_使用ifstream :: seekg和tellg获取文件大小当我尝试获取文件大小时,我有以下块来测试seekg和tellg的行为:intsize=0;ifstreamin(fileName.c_str(),ifstream::in|ifstream::binary);if(in){in.seekg(0,ifstream::end);size=in.tellg();cout<<endl;cout<<endl;…

大家好,又见面了,我是你们的朋友全栈君。

当我尝试获取文件大小时,我有以下块来测试seekg和tellg的行为:

int size = 0;

ifstream in(fileName.c_str(), ifstream::in | ifstream::binary);

if(in)

{

in.seekg(0,ifstream::end);

size = in.tellg();

cout << endl;

cout << endl;

cout << “********** size stream1*** =” << size << endl;

in.seekg(0,ios::end);

size = in.tellg();

cout << “********** size stream2*** =” << size << endl;

in.seekg(0,ios::end);

size = in.tellg();

cout << “********** size stream3*** =” << size << endl;

in.seekg(100,ios::end);

size = in.tellg();

cout << “********** size stream4*** =” << size << endl;

in.seekg(0,ios::beg);

size = in.tellg();

cout << “********** size stream5*** =” << size << endl;

in.seekg(100);

in.seekg(0, ios::end);

size = in.tellg();

cout << “********** size stream6*** =” << size << endl;

in.seekg(100);

in.seekg(0, ios::cur);

size = in.tellg();

cout << “********** size stream7*** =” << size << endl;

in.seekg(-100,ios::end);

size = in.tellg();

cout << “********** size stream8*** =” << size << endl;

in.seekg(ios::beg,ios::end);

size = in.tellg();

cout << “********** size stream9*** =” << size << endl;

in.seekg(ios::beg);

in.seekg(ios::end);

size = in.tellg();

cout << “********** size stream10*** =” << size << endl;

cout << endl;

cout << endl;

}

其结果如下:

********** size stream1*** =1846

********** size stream2*** =1846

********** size stream3*** =1846

********** size stream4*** =1946

********** size stream5*** =0

********** size stream6*** =1846

********** size stream7*** =100

********** size stream8*** =1746

********** size stream9*** =1846

********** size stream10*** =2

我的问题如下:

tellg 会返回最后 seekg 找到的字节吗?

为什么 stream5 结果为0?它以前的位置是在文件的末尾 .

seekg 将始终从文件的开头开始,如 stream5 所示?

seekg 无法向后退,如 stream5 所示?

seekg的第一个参数究竟是什么意思?它表示它是第二个参数的偏移量 . 如果它是一个正值,它似乎超出了第二个参数指向的位置,如 stream4 所示 .

如果我想知道前100个字节后的大小,我必须使用-100,如 stream8 所示?

为什么 stream10 是2?

ofstream中

seekp 和 tellp 的属性为 seekg 和 tellg ?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/145945.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • pycharm修改pip源为清华源-提高下载速度

    pycharm修改pip源为清华源-提高下载速度国内pip源:清华大学https://pypi.tuna.tsinghua.edu.cn/simple/在使用pycharm时,打开avaiablepackegs,点击ManageRepositories。点右上方的绿色加号,添加清华源即可(图中三个源:原始,清华,阿里),也可以只使用清华源:在添加包页面进行刷新,看到下载地址改变即可如果想使用命令行pip命令进行下载:使用pip的时候在后面

  • X86 Debuggers And Tools-x86_en-us 下载及使用

    X86 Debuggers And Tools-x86_en-us 下载及使用下载地址:http://pan.baidu.com/s/1hrioJU8使用:第一步安装:双击X86DebuggersAndTools-x86_en-us.msi第二步打开cmd,进入目录:C:\ProgramFiles(x86)\WindowsKits\8.1\Debuggers\x86>第三步输入命令:adplus-crash-p8436-FullonFirst

  • 使用css控制gridview控件的样式,GridView 样式美化及应用.doc[通俗易懂]

    使用css控制gridview控件的样式,GridView 样式美化及应用.doc[通俗易懂]GridView样式美化及应用GridView样式美化及应用摘要:ASP.NET4.0中GridView控件主要用于显示数据库的查询结果。文中对GridView控件的样式美化进行了研究,探讨了GridView控件在应用过程中的自动排序及动态添加列等功能,并给出了其实现方法。经过系统的应用与实践验证,基本实现了预期的效果。关键词:GridView;class绑定;事件中图分类号:TP311…

  • 为什么国产操作系统要基于linux,解说国产Linux操作系统为什么都模仿Windows桌面…

    为什么国产操作系统要基于linux,解说国产Linux操作系统为什么都模仿Windows桌面…目前大多数国产Linux操作系统的桌面都和微软的Windows桌面非常类似,相信很多人都有这个疑问,为什么多数国产Linux操作系统都在模仿Windows桌面?而不是独有的界面风格呢?下面来看两张国产Linux操作系统桌面截图:1.中标麒麟桌面操作系统2.红旗Linux桌面操作系统注:从上面两张桌面截图可以看出,和微软的Windows桌面相当的像,特别是和WindowsXP相当像。以下从四点说明…

  • docker安装RabbitMQ「建议收藏」

    docker安装RabbitMQ「建议收藏」docker安装RabbitMQ查看仓库里的RabbitMQdockersearchrabbitmq安装RabbitMQdockerpullrabbitmq这里是直接安装最新的,如果需要安装其他版本在rabbitmq后面跟上版本号即可启动RabbitMQdockerrun-d–hostnamemy-rabbit–namerabbit-p15672:15672-p5672:5672rabbitmq安装插件先执行dockerps拿到当前的镜像ID

  • 【转AekdyCoin】求小于等于N的与N互质的数的和「建议收藏」

    【转AekdyCoin】求小于等于N的与N互质的数的和「建议收藏」话说我以前求这样的问题都是先求与N不互质的数,把N分解质因数,然后用容斥原理,今天看了大牛的博客,顿时觉得弱爆了。。。以下内容转大牛文章:ifgcd(n,i)=1thengcd(n,n-i)=1(1反证法:如果存在K!=1使gcd(n,n-i)=k,那么(n-i)%k==0而n%k=0那么必须保证i%k=0k是n的因子,如果i%k=0那么gcd(n,i)=k

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号