文件输入流(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                                 //2std::cout <<"+++++++++++++++++++++++++++++++"<<std::endl;
//read whole file again
line = 0;
while(ifs.readline(str,strLen)){//发生错误,不能继续读文件std::cout << line++ << " : "<<str<<std::endl;
}

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

查看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 //1std::cout <<"+++++++++++++++++++++++++++++++"<<std::endl;
//read whole file again
line = 0;
while(ifs.readline(str,strLen)){//发生错误,不能继续读文件std::cout << line++ << " : "<<str<<std::endl;
}

ifstream seekg 问题相关推荐

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

    当我尝试获取文件大小时,我有以下块来测试seekg和tellg的行为: int size = 0; ifstream in(fileName.c_str(), ifstream::in | ifstr ...

  2. ifstream.seekg、ifstream.tellg的用法

    ifstream是用于读写的C++库. 在C++中,读写是基于指针的.同样,seekg,tellg都和指针有关联. tellg是告诉指针当前的位置. seekg是修改指针的位置. 例程1.1: see ...

  3. ifstream seekg( ) read( )文本操作

    // Test1.cpp : 此文件包含 "main" 函数.程序执行将在此处开始并结束. //#include <iostream> #include <fst ...

  4. c++ fstream类详解

    在C++中,有一个stream这个类,所有的I/O都以这个"流"类为基础的, 一,c++ 文件流的结构 : ‍1,几个文件流类名称:fstream,ifstream,ofstrea ...

  5. C++笔记 文件处理笔记

    1.1 1.1.1文件处理头文件 #include #include 1.1.2创建流对象打开文件 ···fstream file("file.txt",ios::out) 等同于 ...

  6. 基于C++实现的用于OpenAL的 .wav音频加载器

    文章目录 0x00 | 前言 0x01 | .wav格式的标准结构 0x02 | .wav格式的非标准结构 0x03 | C++按字节读取文件的方法 0x04 | OpenAL播放音频的流程 0x05 ...

  7. 文件操作ofstream,open,close,ifstream,fin,按照行来读取数据, fstream,iosin iosout,fio.seekg(),文件写入和文件读写,文件拷贝和文件

     1.ofstream,open,close 写入文件 #include<iostream> #include<fstream> using namespace std; ...

  8. C语言的seekg函数,实战中遇到的C++流文件重置的一个大陷阱: 为什么ifstream的seekg函数无效?...

    今天下午遇到这样的一个问题: 逐行读取了test.txt文件后,  后续需要继续从头开始重新逐行读取, 用C++怎么做呢? 下面, 我们先在工程当前目录下制作我们需要的test.txt文件, 在里面输 ...

  9. 实战中遇到的C++流文件重置的一个大陷阱 为什么ifstream的seekg函数无效

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 今天下午 ...

最新文章

  1. oracle sql 平均分配 分组_SQL学习二
  2. 爱奇艺蒙版AI:弹幕穿人过,爱豆心中坐
  3. 北京建委breaa.cn宕了
  4. PAT甲级1019 General Palindromic Number:[C++题解]进制位、回文数、vector来做
  5. JDK8新特性之接口默认方法与静态方法
  6. WGAN的成功,可能跟Wasserstein距离没啥关系
  7. C++——赫夫曼编码-译码器(Huffman Coding)
  8. bat自动输入用户名和密码_「小白到大牛之路6」交换机后台管理之重复输入用户名和密码...
  9. linux oracle手动启动两个实例
  10. cf1561D Up the Strip(D1D2)
  11. 运行程序中的服务器错误是什么,登陆一个网站时,出现“/”应用程序中的服务器错误要怎么解决啊?? 爱问知识人...
  12. 赖世雄英语学习三原则
  13. 【LaTex使用总结】LaTex,pdflatex,xelatex,xetex等的区别和关系
  14. PADS9.5 导入立创元器件库卡顿
  15. Grafana Tempo部署
  16. Friends第七季第八季, Candler Monica终于结婚了,Joey爱上了Rachel
  17. java mediator模式_设计模式之Mediator 中介者模式 - 解道Jdon
  18. Python脚本代理设置
  19. 高精度在线计时器(秒表)
  20. 用趋势突破策略回测CTA

热门文章

  1. Microbiome:野生哺乳动物的皮肤和肠道微生物对核污染的反应
  2. word中visio图形的处理技巧
  3. U3D 2020 AssetStort(资源商店)项目导入
  4. 再谈条件变量—从入门到出家
  5. musescore 4.0编译
  6. JS JSON Ajax
  7. 了解华为云,了解云计算
  8. Ogre学习记录(一)-启动流程
  9. matlab2014 图标,Ubuntu14.04 Matlab 2014b启动器(使用matlab自带图标)
  10. 方舟手游怎么看最新服务器机柜销售,方舟生存进化PVX服务器怎么玩 PVX服务器规则一览...