关于seekg失效的问题

当file.eof()=1的时候seekg就不好用了,
当file.eof()=0的时候seekg是好用的。

也就是说当一个文件读到尾部以后,
不能再用seekg来移动或者定位了。
通过建立该文件新的对象能解决这个问题。

如果只是输出的话可以用streambuf的rdbuf

#include<fstream>
#include<iostream>
#include<string>
using namespace std;int main(){ofstream ofile("test.txt");ofile<<"hello this is testing fstream!";ofile<<endl;ofile.close();ifstream ifile("test.txt");string line;for(int i=0; i<3; i++){cout<<"this is "<<i<<" file"<<endl;ifile.clear();while(getline(ifile,line)){cout<<line<<endl;}cout<<"eof: "<<ifile.eof()<<endl;ifile.seekg(0,ios::beg);}ifile.close();
}

输出:

this is 0 file
hello this is testing fstream!
eof: 1
this is 1 file
eof: 1
this is 2 file
eof: 1

可以改用rdbuf

 1 #include<fstream>
 2 #include<iostream>
 3 #include<string>
 4 using namespace std;
 5
 6 int main(){
 7     ofstream ofile("test.txt");
 8     ofile<<"hello this is testing fstream!";
 9     ofile<<endl;
10     ofile.close();
11
12     ifstream ifile("test.txt");
13     string line;
14     for(int i=0; i<3; i++){
15         cout<<"this is "<<i<<" file"<<endl;
16         cout<<ifile.rdbuf();
17         cout<<"eof: "<<ifile.eof()<<endl;
18         ifile.seekg(0,ios::beg);
19     }
20     ifile.close();
21 }

输出:

this is 0 file
hello this is testing fstream!
eof: 0
this is 1 file
hello this is testing fstream!
eof: 0
this is 2 file
hello this is testing fstream!
eof: 0

【C/C++开发】C++文件流关于seekg失效的问题相关推荐

  1. 简单开发的android阅读器源码,包含了读取数据库和文件流处理功能

    原文:简单开发的android阅读器源码,包含了读取数据库和文件流处理功能 源代码下载地址:http://www.zuidaima.com/share/1838906559466496.htm 简单地 ...

  2. C++基础(四) 文件流 I/O流 文件指针 tellg tellp seekp seekg

    C++中的有关文件的设计,由于历史原因,着实不太好用,里面的坑很多. 一.常见文件打开方式 文件模式常量含义 常量 含义 ios_base::in 以读的方式打开文件 ios_base::out 以写 ...

  3. 一文彻底搞懂C++文件流, 文件读写,fstream、seekg、seekp等的使用。

    彻底搞懂C++文件流. 首先需要头文件#include< fstream > fstream可以把它理解成一个父类,包含的子类有ifstream和ofstream等, 所以一般直接创建一个 ...

  4. PDF.js 预览pdf文件流预览pdf,及ie浏览器兼容性问题,解决方案!!(开发笔记)

    一. 官网下载pdf.js :Getting Started 注意: 这俩包 都不支持ie,因为用的是es6,ie解析不出来 下完以后引进去.下面为省事 找几个市面上常用的方法: 1.文件流转base ...

  5. java 读取流的字符编码格式_如何使用Java代码获取文件、文件流或字符串的编码方式...

    标签: 今天通过网络资源研究了一下如何使用Java代码获取文件.文件流或字符串的编码方式,现将代码与大家分享: package com.ghj.packageoftool; import info.m ...

  6. C++ 学习笔记之——文件操作和文件流

    1. 文件的概念 对于用户来说,常用到的文件有两大类:程序文件和数据文件.而根据文件中数据的组织方式,则可以将文件分为 ASCII 文件和二进制文件. ASCII 文件,又称字符文件或者文本文件,它的 ...

  7. php接收流文件,PHP传输文件流及文件流的保存

    什么是文件流 在HTTP数据传送过程中,传输一方直接以二进制流方式传送文件内容,这样就形成了一个文件流: 文件流的接收通常涉及到预定义变量函数 $HTTP_RAW_POST_DATA 和 file_g ...

  8. C++文件流:myfstream,fstream,文件读写,随机文件读写【C++文件流】(59)

    文件流 myfstream fstream Test myfstream fstream 流对象的定义 流对象关联文件 open 函数 打开方式 关闭流对象 文件读写 读写文本文件 读写接口 读一字/ ...

  9. SpringBoot+Vue+Itext实现前端请求文件流的方式下载PDF

    场景 SpringBoot加itext实现PDF导出: SpringBoot加itext实现PDF导出_BADAO_LIUMANG_QIZHI的博客-CSDN博客 上面实现导出pdf的基础上,怎样结合 ...

最新文章

  1. 后端传给前端 无限极分类_学徒|记者亲身体验垃圾分拣,臭到崩溃!我们还有什么理由不做垃圾分类?...
  2. Mybatis增删改
  3. Codeforces Round #712 (Div. 2) D. 3-Coloring 交互 构造
  4. 服务器维护 测试化验加工费,测试化验加工费.PPT
  5. 办公自动化-ppt的创建实操-各个对象的理解-0223
  6. 95-230-026-源码-WordCount走读-本地运行SubmitJob的过程
  7. 你还在盲目做抖音吗?
  8. java----EL表达式
  9. DNS服务器构建(一)-—构建域名缓存服务器
  10. 操作系统原理(五)存储管理
  11. JavaSE网络编程练习
  12. html 抽签分小组代码,JavaScript实现班级抽签小程序
  13. 想发SCI但自己没有原始数据?推荐 8 个好用的公共数据库
  14. jupyterLab增大字体大小
  15. java soaoffice_SOAOFFICE是什么?
  16. 《LeetCode刷题》954. 二倍数对数组(java篇)
  17. 叫你如何查看QQ空间秘密发布者的发布时间
  18. 文琼书斋 v3.1 绿色
  19. 用计算机计算下列各式 11x,用计算器计算有理数的乘方教学设计实例
  20. 特性开关框架选型之FF4J vs Togglz

热门文章

  1. PHP序列化-Typecho框架漏洞-任意代码执行
  2. MAC下TexLive+texmaker使用经验
  3. 彩虹六号玩家破60000
  4. BinaryTree
  5. 一个VR游戏DEMO的开发历程是怎样的?
  6. Java实现串口通信的小例子
  7. 根据三条边判断三角形类型
  8. vue中实现模态框弹出框动画(旋转弹出)
  9. lhgDialog窗口组件
  10. javascript运动系列第八篇——碰壁运动