seekg前记得手动清除EOF标志位[通俗易懂]

seekg前记得手动清除EOF标志位[通俗易懂]问题因为具体任务,需要一个文件读取两遍。之前在第一次读取完毕后(此时EOF已经置位),直接调用is.seekg(0,is.beg);然后下次读取时直接退出了,即EOF标志位并没有被清除。查看C++标准库说明:C++98Iftheeofbitflagissetbeforethecall,thefunctionfails(setsfailbitandreturns).

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

问题

因为具体任务,需要一个文件读取两遍。

之前在第一次读取完毕后(此时EOF已经置位),直接调用

is.seekg(0,is.beg) ;

然后下次读取时直接退出了,即EOF标志位并没有被清除。

查看C++标准库说明:

C++98
If the eofbit flag is set before the call, the function fails (sets failbit and returns).
C++11
The function clears the eofbit flag, if set before the call.

可以看到,按照标准库说法,C++98时如果EOF被置位,那么调用seekg会失败;但是在C++11中,上面说会首先清除EOF标志位。

然而,我测试 g++ 4.8.5, 指定-std=c++11 , 以及使用VS2015,发现seekg均失败。

照理说这些编译器应该都实现C++11标准了,然而这个问题依然如此。

这还是有些尴尬的。标准一回事、实现一回事,而且两个主要实现都不支持新标准…

不得不让我联想起空穴来风这个成语来了…

解决

一定seekg之前手动clear掉(EOF)标志位。

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

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

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


相关推荐

  • SQL中decimal的相关使用[通俗易懂]

    SQL中decimal的相关使用[通俗易懂]decimal用于表示定点实数,具体使用格式为:decimal[(p[,s])],其中p表示精度,用于指定小数点左边和右边十进制数字的最大位数,取值在1-38之间,缺省值为18,s指定小数点右边十进制数的最大位数,取值在0-p之间缺省值为0(此时小数点后面没有小数位,所有输入的小数位都会被自动四舍五入)。故而定义了一个decimal类型的变量的时候,要注意这个否则就会发生越界的情况。…

    2022年7月20日
    32
  • linux iptable命令用法

    linux iptable命令用法iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分。可以直接配置,也可以通过许多前端和图形界面配置。语法iptables(选项)(参数)选项-t<表>:指定要操纵的表;-A:向规则链中添加条目;-D:从规则链中删除条目;-i:向规则链中插入条目;-R:替换规则链中的条目;-L:显示规则链中已有的条目;-F:清楚规则链中已…

    2022年5月28日
    42
  • 详解高级PHP工程师面试题

    详解高级PHP工程师面试题

    2022年2月12日
    44
  • 五、分类模型_大五模型包括

    五、分类模型_大五模型包括一、分类模型的定义文章目录一、分类模型的定义二、分类模型类型2.1、逻辑回归2.2、决策树2.3、支持向量机2.4、朴素贝叶斯在机器学习中,我们把机器学习分为监督学习和非监督学习,监督学习就是在一组有标签(有目标)属性的数据集中,我们将数据教给机器学习,让他根据数据中的属性和目标,去看题目答案一样把答案记住。之后再给类似的题目去作一样。我们把数据集中的标签,一般都标为属性,而我们又把属性分为离散属性和连续属性,每一个标签都是可以这样分的。像如果我们预测的属性值的特性是连续属性的话,我们把这种模型称为是

    2022年9月28日
    4
  • DELL服务器数据恢复成功案例[通俗易懂]

    DELL服务器数据恢复成功案例[通俗易懂]DELLEqualLogicPS6100采用虚拟ISCSISAN阵列,为远程或分支办公室、部门和中小企业存储部署带来企业级功能、智能化、自动化和可靠性。以简化的管理、快速的部署及合理的价格满足了分支办公室和中小企业的存储需求,同时提供全套企业级数据保护和管理功能、可靠的性能、可扩展性和容错功能,是中型企业级存储的起点产品,但某些物理故障或其他操作都可能会对卷或存储造成破坏,因此对系列存储的数…

    2022年6月30日
    26
  • 2019 美赛 A题

    2019 美赛 A题(新)2019美赛A题思路详解(纯干货)https://blog.csdn.net/i_CodeBoy/article/details/866636282019MCMProblemA:GameofEcologyInthefictionaltelevisionseriesGameofThrones,basedontheseriesofepic…

    2022年4月30日
    268

发表回复

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

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