1.流?
在计算机中,存在着数据流的概念,它就像我们现实世界中的水流,有起点,有终点,它是一串数据的序列,包括输入流和输出流
C++的流
C++通过一种流的机制提供了更为精确的输入和输出的方法,流是一种非常灵活并且面向对象io 方法,根据对象的不同我们可以分为
文件流
控制台流
字符串流
作为一个初学者,我从简单的文件流开始学习
如图所示C++的输入流和输出流分别由istream和ostream两个类控制,为了方便双向的输入与输出,这两个类派生出了iostream类,一般写在我们代码的最开头
cin和cout两个东西我们很熟悉,它们实际上是函数,专门用来输入和输出 而<<和>>叫做流插入运算符,我们直接使用因为在相应的类中,对每一个基本的数据类型都做了友元重载的操作,这也说明如果我们想要在我们自己创建的类中使用流插入运算符,我们需要对它进行重载
以上就是我们所说的“控制台流”
下面是文件流,它和控制台流的继承关系是
这里我们给出ostream类的构造函数来解释一些概念
显然filename是文件名称或者地址,mode是打开的模式,prot则是打开文件的属性
这是对mode的一些列举,常用的一般就是输入和输出
C++的文件处理利用了类和对象的思想,文件处理可以看作是一个对象,使用了文件流的类,使用了头文件
文件处理的基本流程
实际上这是一个把大象装进冰箱里面的问题
1.打开文件
open()函数
void open(const char* filename,ios::openmode)
这些处理模式可以进行搭配,例如
//以写入模式打开文件,并且希望防止文件已经存在,在打开之前截断文件
ostream outf;
out.open("file.txt",ios::out | ios::trunc);
//打开一个文件用于读写 fstream file; file.open("file.txtx",ios::out | ios::in);
2.处理文件
写入与读取
写入文件使用<<运算符,但是这里使用的是fstream,ofstream对象,不是cout对象 读取文件使用>>运算符,但是这里使用的是ifstream,fstream,不是cin对象
3.关闭文件
直接调用close函数 以上是简单理论