fstream知识梳理

  • fstream头文件中的3中类型
  • fstream关联的文件方式
  • 读写文件
  • fstream的操作函数
    • eof()函数
    • bad()函数
    • good()函数
    • clear()函数
    • get() 和 put()
    • getline()函数

fstream头文件中的3中类型

  • ifstream :从一个文件中读取数据
  • ofstream :从一个文件中写入数据
  • fstream :既可以读又可以写数据
#include <fstream>
#include <iostream>using namespace std;int main() {ifstream ifstrm(".\\ifstrm.txt");if (ifstrm.is_open()){cout << "IFSTRM OPEN SUCC" << endl;}ofstream ofstrm;ofstrm.open(".\\ofstrm.txt");if (ofstrm.is_open()){cout << "OFSTRM OPEN SUCC" << endl;}fstream  fstrm;fstrm.open(".\\fstrm.txt", ios::in | ios::out | ios::app);if (fstrm.is_open()){cout << "FSTRM OPEN SUCC" << endl;}ifstrm.close();ofstrm.close();fstrm.close();return 0;
}

fstream关联的文件方式


每种方式可以以“|”操作符或者“+”操作符把以上属性连接起来

ifstream关联文件默认以in方式打开
ofstream关联文件默认以out方式打开
fstream关联文件默认以in和out方式打开

当以out模式打开文件时,文件内容会丢失,需要以app模式打开out模式文件

读写文件

用插入器(<<)向文件输出
用析取器(>>)从文件输入

string in,out;
ifstrm  >>  in;      //in的值为文件的第一行
ofstrm  <<  out;

fstream的操作函数

eof()函数

eof() 判断是否到达文件结尾,如果结尾返回true,否则false
Returns true if the eofbit error state flag is set for the stream.This flag is set by all standard input operations when the End-of-File is reached in the sequence associated with the stream.Note that the value returned by this function depends on the last operation performed on the stream (and not on the next).Operations that attempt to read at the End-of-File fail, and thus both the eofbit and the failbit end up set. This function can be used to check whether the failure is due to reaching the End-of-File or to some other reason.

// ios::eof example
#include <iostream>     // std::cout
#include <fstream>      // std::ifstreamint main () {std::ifstream is("example.txt");   // open filechar c;while (is.get(c))                  // loop getting single charactersstd::cout << c;if (is.eof())                      // check for EOFstd::cout << "[EoF reached]\n";elsestd::cout << "[error reading]\n";is.close();                        // close filereturn 0;
}

bad()函数

返回badbit标志位的值,真或假。badbit表示发生系统级的错误,如不可恢复的读写错误。通常情况下一旦badbit被置位,流就无法再使用了。
Returns true if the badbit error state flag is set for the stream.This flag is set by operations performed on the stream when an error occurs while read or writing data, generally causing the loss of integrity of the stream.

good()函数

返回goodbit标志位的值,goodbit 被置位表示流未发生错误。
Returns true if none of the stream’s error state flags (eofbit, failbit and badbit) is set.

clear()函数

将流s中的所有状态值都重设为有效状态。

get() 和 put()

get函数常用的三种重载方式:
1.int get();
2.ifstream &get(char *ch)
3.ifstream &get(char *buf,int num,char chr=’\n’)
第一个参数为要存储的指定字符数组,第二个参数为抽取、读取指定数目的字符,第三个参数指定结束字符,默认为"\n"。

put函数向流写入一个字符,其原型是ofstream &put(char ch)。

getline()函数

getline函数常用的两种重载方式
1.istream &getline( char *buffer, streamsize num );
2.istream &getline( char *buffer, streamsize num, char delim );
第一个参数为要存储的指定字符数组,第二个参数为抽取、读取指定数目的字符,第三个参数指定结束字符,默认为"\n"。

fstream知识梳理相关推荐

  1. 插件化知识梳理(7) 类的动态加载入门

    一.前言 在 插件化知识梳理(6) - Small 源码分析之 Hook 原理 这一章的学习完成之后,下一步我们将进入插件化加载的精髓,动态加载类的学习,在此之前,我们需要先准备一些关于类加载的知识. ...

  2. 数据结构(C语言版) 第 八 章 排序 知识梳理 + 习题详解

    目录 一.归并排序 二.交换排序 1.快速排序 2.冒泡排序 三.插入排序 1.直接插入排序(基于顺序查找) 2.折半插入排序(基于折半查找) 3.希尔排序(基于逐趟缩小增量) 四.选择排序 0.直接 ...

  3. 数据结构(C语言版) 第 六 章 图 知识梳理 + 习题详解

    目录 一. 图的基本定义和术语 一.图的基本概念 1.度 2.连通 (1)连通图 (2)强连通/强连通图 3.回路 4.完全图 二.图的三种存储结构 1.邻接矩阵表示法 2.邻接表(链式)表示法 3. ...

  4. 数据结构(C语言版) 第 三 章 栈与队列 知识梳理 + 作业习题详解

    目录 一.栈 0.栈的基本概念 1.栈的实现 2.栈与递归 3.Hanoi塔问题 二.队列 0.队列的基本概念 1.队列的实现 2.循环队列 2.1循环队列的相关条件和公式: 3.链队列 4.链队列完 ...

  5. 数据结构(C语言版) 第二章 线性表 知识梳理+作业习题详解

    目录 一.线性表顺序存储结构(顺序表) 0.线性表的基本概念 1.样例引入:多项式相加 二.线性表链式存储结构(链表) 0.链表的基本概念 1.前插法代码实例 2.链表尾插法完整代码附带各种操作 三. ...

  6. Framework 源码解析知识梳理(5) startService 源码分析

    一.前言 最近在看关于插件化的知识,遇到了如何实现Service插件化的问题,因此,先学习一下Service内部的实现原理,这里面会涉及到应用进程和ActivityManagerService的通信, ...

  7. Python基础知识梳理(一)

    Python基础知识梳理: 转载于:https://blog.51cto.com/10412806/2095116

  8. C#基础知识梳理系列十:异常处理 System.Exception

    C#基础知识梳理系列十:异常处理 System.Exception 参考文章: (1)C#基础知识梳理系列十:异常处理 System.Exception (2)https://www.cnblogs. ...

  9. python语法基础知识总结-Python基础知识梳理 - 第01部分

    在开始Python基础知识梳理前, 先安装下环境. 以下过程是在Linux操作系统, root用户下进行的, 主要安装了2.7版本的python, 和pip, ipython, virtualenv等 ...

最新文章

  1. Js + Css的msn式的popup提示窗口的实现
  2. 第二阶段个人冲刺10
  3. 【Android 逆向】IDA 安装 ( 使用 IDA 分析 so 动态库 )
  4. 计算机网络-基本概念(10)【传输层】TCP运输连接管理
  5. 【思考?】什么时候会触发这个策略呢?
  6. linux内核irq,linux-kernel – do_IRQ中的中断向量和irq映射
  7. w8计算机配置要求,win8系统最低配置要求有哪些|win8系统是否有最低配置要求-系统城...
  8. ApacheCN Java 译文集 20210921 更新
  9. JavaScript和Chrome中的SSDP发现
  10. html点导航栏换图片,jQuery点击导航栏选中更换样式的实现代码
  11. 利用python抓取网页图片
  12. Android的数据库(SQLite)学习
  13. PHP自动化代码审计工具
  14. 华为安装gsm框架_华为Mate30Pro怎么安装谷歌服务框架?谷歌服务GMS框架安装方法...
  15. PHP将uncode转utf8,一行代码解决问题
  16. Gym - 101964E - Fishermen - (二分+区间更新)
  17. win10家庭版优化
  18. np.percentile用法
  19. 微信小程序系列4——传值详解
  20. java xml格式化_使用java将xml格式化

热门文章

  1. csgo fps不稳定和服务器,急~CS1.6转向CSGO FPS不稳定问题咨询
  2. 联想小新潮7000安装deepin 系统
  3. v8系统计算机怎么安装到桌面,如何在Ubuntu 14.04上安装轻量级的Budgie桌面(v8)
  4. 用 Python 实现朋友圈中的九宫格图片
  5. Fusion360学习记录:螺帽
  6. 流媒体协议分析之webrtc之rtp
  7. 从你选的颜色可以反映出你的性格和心理状态!
  8. springboot+书法比赛评分系统 毕业设计-附源码200855
  9. IntelliJ IDEA快捷键以及使用技巧
  10. 怎么学计算机二级offic,计算机二级office考试抱佛脚指南