【C/C++开发】C++文件流关于seekg失效的问题
关于seekg失效的问题
当file.eof()=1的时候seekg就不好用了,
当file.eof()=0的时候seekg是好用的。
也就是说当一个文件读到尾部以后,
不能再用seekg来移动或者定位了。
通过建立该文件新的对象能解决这个问题。
如果只是输出的话可以用streambuf的rdbuf
![](/assets/blank.gif)
#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(); }
![](/assets/blank.gif)
输出:
this is 0 file
hello this is testing fstream!
eof: 1
this is 1 file
eof: 1
this is 2 file
eof: 1
可以改用rdbuf
![](/assets/blank.gif)
![](/assets/blank.gif)
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 }
![](/assets/blank.gif)
输出:
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失效的问题相关推荐
- 简单开发的android阅读器源码,包含了读取数据库和文件流处理功能
原文:简单开发的android阅读器源码,包含了读取数据库和文件流处理功能 源代码下载地址:http://www.zuidaima.com/share/1838906559466496.htm 简单地 ...
- C++基础(四) 文件流 I/O流 文件指针 tellg tellp seekp seekg
C++中的有关文件的设计,由于历史原因,着实不太好用,里面的坑很多. 一.常见文件打开方式 文件模式常量含义 常量 含义 ios_base::in 以读的方式打开文件 ios_base::out 以写 ...
- 一文彻底搞懂C++文件流, 文件读写,fstream、seekg、seekp等的使用。
彻底搞懂C++文件流. 首先需要头文件#include< fstream > fstream可以把它理解成一个父类,包含的子类有ifstream和ofstream等, 所以一般直接创建一个 ...
- PDF.js 预览pdf文件流预览pdf,及ie浏览器兼容性问题,解决方案!!(开发笔记)
一. 官网下载pdf.js :Getting Started 注意: 这俩包 都不支持ie,因为用的是es6,ie解析不出来 下完以后引进去.下面为省事 找几个市面上常用的方法: 1.文件流转base ...
- java 读取流的字符编码格式_如何使用Java代码获取文件、文件流或字符串的编码方式...
标签: 今天通过网络资源研究了一下如何使用Java代码获取文件.文件流或字符串的编码方式,现将代码与大家分享: package com.ghj.packageoftool; import info.m ...
- C++ 学习笔记之——文件操作和文件流
1. 文件的概念 对于用户来说,常用到的文件有两大类:程序文件和数据文件.而根据文件中数据的组织方式,则可以将文件分为 ASCII 文件和二进制文件. ASCII 文件,又称字符文件或者文本文件,它的 ...
- php接收流文件,PHP传输文件流及文件流的保存
什么是文件流 在HTTP数据传送过程中,传输一方直接以二进制流方式传送文件内容,这样就形成了一个文件流: 文件流的接收通常涉及到预定义变量函数 $HTTP_RAW_POST_DATA 和 file_g ...
- C++文件流:myfstream,fstream,文件读写,随机文件读写【C++文件流】(59)
文件流 myfstream fstream Test myfstream fstream 流对象的定义 流对象关联文件 open 函数 打开方式 关闭流对象 文件读写 读写文本文件 读写接口 读一字/ ...
- SpringBoot+Vue+Itext实现前端请求文件流的方式下载PDF
场景 SpringBoot加itext实现PDF导出: SpringBoot加itext实现PDF导出_BADAO_LIUMANG_QIZHI的博客-CSDN博客 上面实现导出pdf的基础上,怎样结合 ...
最新文章
- 后端传给前端 无限极分类_学徒|记者亲身体验垃圾分拣,臭到崩溃!我们还有什么理由不做垃圾分类?...
- Mybatis增删改
- Codeforces Round #712 (Div. 2) D. 3-Coloring 交互 构造
- 服务器维护 测试化验加工费,测试化验加工费.PPT
- 办公自动化-ppt的创建实操-各个对象的理解-0223
- 95-230-026-源码-WordCount走读-本地运行SubmitJob的过程
- 你还在盲目做抖音吗?
- java----EL表达式
- DNS服务器构建(一)-—构建域名缓存服务器
- 操作系统原理(五)存储管理
- JavaSE网络编程练习
- html 抽签分小组代码,JavaScript实现班级抽签小程序
- 想发SCI但自己没有原始数据?推荐 8 个好用的公共数据库
- jupyterLab增大字体大小
- java soaoffice_SOAOFFICE是什么?
- 《LeetCode刷题》954. 二倍数对数组(java篇)
- 叫你如何查看QQ空间秘密发布者的发布时间
- 文琼书斋 v3.1 绿色
- 用计算机计算下列各式 11x,用计算器计算有理数的乘方教学设计实例
- 特性开关框架选型之FF4J vs Togglz