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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux 重启网络服务__2018.07.28[通俗易懂]

    Linux 重启网络服务__2018.07.28[通俗易懂]使用minicom软件开发串口进入minicom:    sudominicom 设置PC机的静态IP地址:   sudovim/etc/network/interfaces    autoeth0   ifaceeth0inetstatic   address192.168.1.30   netmask255.255.255.0   gat…

    2022年10月20日
  • 5G信道建模

    5G信道建模5G毫米波一般认为毫米波波段的信道具有稀疏性,即径数远小于天线数,因此直接在角度域上通过估计各条径的AoD/AoA和增益系数做信道估计,比起在天线域上做信道估计更简单。但这么做还隐含了每条可分辨径的角度扩展很小这样的假设,在mmWavemMIMO系统中,信道估计等同于估计AoA和AoD以及每条path的散射系数,就是毫米波波段的情况。而在低频NLoS情况下,由于散射传播路径非常丰富,信道不存在稀疏性,也没有一个清晰的几何结构,因此一般建模为随机的比如Rayleigh信道。对于这种信道我们就对其整体进行估

    2022年5月2日
  • 紫光同创国产FPGA学习之Power Calculator

    紫光同创国产FPGA学习之Power Calculator紫光同创里面的,芯片功耗计算。没看过,没用过。有兴趣瞄一下。我又不用再电池行业,对电源没啥要求。没用经验之谈,拷贝参考书。一、总体介绍  (一)PangoPowerCalculator总体介绍PangoPowerCalculator是用来计算用户设计产生功耗的软件,简称PPC,是集成在PDS中的一个组件。用户在完成design设计,经过综合、map、布局布线后,可以使用P…

    2022年8月30日
  • elasticsearch 入门安装

    elasticsearch 入门安装

    2022年2月18日
  • ibatis isNotEmpty

    ibatis isNotEmpty1、ibatis中isNotEmpty的作用        selectxiddictCode,xnamedictNamefromcity  ]]>                  xflag=$xflag$   ]]>                              xprovince_id=#xpro

    2022年10月7日
  • 数据库的建立、增、删、改、查[通俗易懂]

    数据库的建立、增、删、改、查[通俗易懂]快来快来一起学技术吧!数据库的建立、增、删、改、查,有图,有文,有例子!

    2022年7月19日

发表回复

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

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