ifstream seekg 问题

ifstream seekg 问题文件输入流(ifstream)读到文件尾之后,调用seekg重定向读pos类似于以下代码片段://readwholefilewhile(ifs.readline(str,strLen)){std::cout<<line++<<":"<<str<<std::endl;}ifs.seekg(0,std:…

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

文件输入流(ifstream)读到文件尾之后,调用seekg 重定向 读pos

类似于以下代码片段:

//read whole file
while(ifs.readline(str,strLen)){
    std::cout << line++ << " : "<<str<<std::endl;
}



ifs.seekg(0,std::ios::beg);//rewind to beginning of the file //1
ifs.clear();//clear eof flag                                 //2

std::cout <<"+++++++++++++++++++++++++++++++"<<std::endl;
//read whole file again
line = 0;
while(ifs.readline(str,strLen)){//发生错误,不能继续读文件
    std::cout << line++ << " : "<<str<<std::endl;
}

 

发现重新读文件的时候 发生错误,不能继续读文件。

查看seekg的说明之后,发现

ifstream seekg 问题

如果 ifstream 的 eofbit 没有被清除,seekg 会失败。

 

改成如下代码之后,程序正常了。

 

//read whole file
while(ifs.readline(str,strLen)){
    std::cout << line++ << " : "<<str<<std::endl;
}


ifs.clear();//clear eof flag first                                //2
ifs.seekg(0,std::ios::beg);//then rewind to beginning of the file //1


std::cout <<"+++++++++++++++++++++++++++++++"<<std::endl;
//read whole file again
line = 0;
while(ifs.readline(str,strLen)){//发生错误,不能继续读文件
    std::cout << line++ << " : "<<str<<std::endl;
}

 

 

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/130992.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 微商城分销系统:微商运营管理系统搭建介绍

    微商城分销系统:微商运营管理系统搭建介绍“互联网+”时代背景下,计算机信息处理技术的数据技术已经无法满足日益增长的数据存储需求。因此,工作人员要大力发开计算机信息处理技术的数据存储功能,促进存储技术发展,推动计算机信息处理技术在“互联网”时代中进步与发展。计算机信息处理技术的信息存储技术,是计算机在对信息数据进行加工后,将其保存在计算机系统的空间中,为使用者后期调取和查看做准备。微商城分销系统能够准确即时管理分销商,掌握分销商的销售情况,从而了解产品的销售情况,重要的是不仅实现了产品的销售与推广,还可以根据消费者的需求来改变产品的供求,了解市场

    2022年5月16日
    31
  • jQuery简洁大方的登录页面模板

    jQuery+CSS网站登录模板本模板带验证码在线体验:http://hovertree.com/texiao/jquery/13.htmDemo2:http://hovertree.com/hvt

    2021年12月21日
    54
  • idea设置热部署

    idea设置热部署其实,idea和eclipse设置热部署都很简单,但是很多人都会忽略掉一点,那就是:一定要在debug模式下才有用!!(配置文件什么的还是要重启的)(不像myeclipse直接star也可以热部署,对于我这种用惯了myeclipse的来说,基本没用debug启动过,所以老觉得配置没用)idea部署方法:(转自https://www.cnblogs.com/1024zy/p

    2022年6月12日
    41
  • sklearn库的使用_导入turtle库的方法

    sklearn库的使用_导入turtle库的方法Sklearn库是基于Python的第三方库,它包括机器学习开发的各个方面。机器学习的开发基本分为六个步骤,1)获取数据,2)数据处理,3)特征工程,4)机器学习的算法训练(设计模型),5)模型评估,6)应用。机器学习的算法一般分为两种:一种既有目标值又有特征值的算法称之为监督学习,另一种只有特征值的算法称之为无监督学习。而监督学习还可以继续细分为分类算法和回归算法。1)获取数据⑤Sklearn中获取数据集使用的包为Sklearn.datasets,之后可以接load_*和fetch_*从Skle

    2022年10月7日
    2
  • INTEGER PRIMARY KEY AUTOINCREMENT 和 INTEGER PRIMARY KEY 区别

    INTEGER PRIMARY KEY AUTOINCREMENT 和 INTEGER PRIMARY KEY 区别转自网络 地址不可考 谢谢原作者 如有冒犯 立即删除 Sqlite 中 INTEGERPRIMA 和 rowid INTEGERPRIMA 的使用 nbsp 在用 sqlite 设计表时 每个表都有一个自己的整形 id 值作为主键 插入后能直接得到该主键 nbsp 因为 sqlite 内部本来就会为每个表加上一个 rowid 这个 rowid 可以当成一个隐含的字段使用 nbsp 但

    2025年9月2日
    3
  • Anchorpoint_insert_tid_for_question_process

    Anchorpoint_insert_tid_for_question_process引言相信初接触到CALayer的人都会遇到以下几个问题: 为什么修改anchorPoint会移动layer的位置?CALayer的position点是哪一点呢?anchorPoint与position有什么关系?我也迷惑过,找过网上的教程,大部分都是复制粘贴的,有些是翻译的文章但很有问题,看得似懂非懂,还是自己写代码彻底弄懂了,做点笔记吧。每一个UIView内部都默认关联着一个CALa…

    2022年10月8日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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