ifstream和ofstream的理解

ifstream和ofstream的理解

开发工具与关键技术:Visual Studio、C++
作者:张国军
撰写时间:2019年06月04日

各种计算机应用系统通常把一些相关信息组织起来保存在外存储器中,称为文件,并用一个名字(称为文件名)加以标识
C++把文件看成无结构的字节流,
编码方式: 文本方式 二进制方式
存取方式: 顺序存取 随机存取
ifstream、ofstream 和 fstream 类用于内存与文件之间的数据传输
我们的ifstream用于读文件、ofstream用于写文件,而fstream可以执行读写操作。
文件操作的基本步骤:
打开文件
读 / 写文件
关闭文件
包括建立文件流对象;与外部文件关联;指定文件的打开方式
打开文件有两种方法:
首先建立流对象,然后调用fstream::open()函数连接外部文件
流类 对象名 ;
对象名 . open ( 文件名 , 方式 ) ;
调用流类带参数的构造函数,建立流对象的同时连接外部文件
流类 对象名 ( 文件名 , 方式 ) ;
open 函数原型
void open ( const char * , int mode , int = filebuf :: openprot ) ;
filebuf、ifstream、ofstream、fstream的构造函数具有相同的参数和缺省值
文件流的构造函数和 open ( ) 函数用于打开文件,析构函数在流对象被删除之前关闭文件
其中,第一个参数表示相关联的文件名、第二个参数表示文件的打开方式、第三个参数是文件的保护方式,一般只用缺省值。
我们先来看一个简单的例子吧:

#include <iostream>
#include <fstream>
using namespace std;
void main() {
	ifstream in("main.cpp");
	char i;
	while (in.get(i))
	{
		cout << i;
	}
}

我这例子是读我当前这个main.cpp文件,也就是我们当前写代码的文件。我读了之后将它进行控制台输出,那么我们来看下边的结果图:

ifstream和ofstream的理解_第1张图片
从这里我们可以看到我们控制台输出的数据跟我们的main.cpp里边的是一样的。
我们这里主要用到了ifstream进行读文件,然后进行控制台输出。
那么我们来看一下简单的ofstream的例子:

#include <iostream>
#include <fstream>
using namespace std;
void main() {
	ifstream in("main.cpp");
	ofstream out("main.txt");
	char i;
	while (in.get(i))
	{
		out << i;
	}
}

例子还是一样,主要的作用是将我们main.cpp里边的内容写入到我们main.tex文件里面。至于这个main.txt文件呢,我们需要去查看它刚开始时是否存在。当我们开始的时候main.txt文件不存在的时候,那么它会自己创建文件,然后进行写入。当我们开始的时候有main.txt文件的时候,那么我们里边的内容将会被我们一次的覆盖掉,所以我们需要注意一下。
ifstream和ofstream的理解_第2张图片
这是我们第二次执行的结果。
ifstream和ofstream的理解_第3张图片
还有就是我们的路径问题,我这里用的是相对路径,当然我们有可以用绝对路径,那么我们需要将路径打完整。相对路径呢它是相对于我们main.cpp来说的,也就是我们的这个执行文件。
至于还有什么其他大作用,还得慢慢的去研究了。

你可能感兴趣的:(C++)