C++打开文件和关闭文件
文件最基本的操作就是打开和关闭,在对文件进行读写之前,需要先打开文件;读写结束之后,要及时关闭文件。下面将针对文件的打开与关闭进行讲解。
第一种调用文件流类的构造函数打开文件方式就是在创建文件流对象时传入文件名和文件打开模式。
下面主要讲解第二种调用
ifstream 类、ostream 类和 fstream 类都提供了成员函数 open() 用于打开文件,open() 函数声明如下所示:
C++ 常用的文件打开模式及含义如表 1 所示。
文件打开模式可以通过位或运算符“|”组合使用,示例代码如下所示:
【示例1】为了加深读者的理解,下面通过案例演示文件的打开与关闭。
首先在项目根目录下创建文本文件 hello.txt,然后编写代码,调用 open() 函数打开 hello.txt 文件,再调用close() 函数关闭 hello.txt 文件,C++ 代码如下:
声明:《C++系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
1) 打开文件
C++ 提供了两种打开文件的方式:- 第一种方式是调用文件流类的构造函数;
- 第二种方式是调用文件流类的成员函数 open()。
第一种调用文件流类的构造函数打开文件方式就是在创建文件流对象时传入文件名和文件打开模式。
下面主要讲解第二种调用
open()
函数打开文件的方式。ifstream 类、ostream 类和 fstream 类都提供了成员函数 open() 用于打开文件,open() 函数声明如下所示:
void open(const char* filename, int mode);在上述函数声明中,参数 filename 表示要打开的文件;参数 mode 表示文件打开模式。如果文件打开失败,则文件流对象的值为 0。 文件打开模式就是指以什么方式打开文件,如只读模式、只写模式等。
C++ 常用的文件打开模式及含义如表 1 所示。
文件打开模式 | 含义 |
---|---|
ios::in | 以只读模式打开文件,若文件不存在,则发生错误 |
ios::out | 以只写模式打开文件,写入时覆盖写入;若文件不存在,则创建一个新文件 |
ios::app | 以追加模式打开文件,若文件不存在,则创建一个新文件 |
ios::ate | 打开一个已存在文件,并将文件位置指针移动到文件末尾 |
ios::trunc | 打开一个文件,将文件内容删除。若文件不存在,则创建一个新文件 |
ios::binary | 以二进制方式打开文件 |
文件打开模式可以通过位或运算符“|”组合使用,示例代码如下所示:
ofstream ofs; //创建文件流对象 ofs.open("Hello.txt", ios::in|ios::out|ios::binary); //多种打开模式组合使用
2) 关闭文件
文件使用完毕之后,要及时关闭。关闭文件就是解除文件与文件流的关联,释放缓冲区和其他资源的过程。 ifstream 类、ostream 类和 fstream 类都提供了成员函数 close() 用于关闭文件,close() 函数声明如下所示:void close();close() 函数没有参数和返回值,用法也很简单,直接通过文件流对象调用 close() 函数就可以关闭文件。
【示例1】为了加深读者的理解,下面通过案例演示文件的打开与关闭。
首先在项目根目录下创建文本文件 hello.txt,然后编写代码,调用 open() 函数打开 hello.txt 文件,再调用close() 函数关闭 hello.txt 文件,C++ 代码如下:
#include<iostream> #include<fstream> //包含fstream文件 using namespace std; int main() { ifstream ifs; //创建输入流对象 ifs.open("hello.txt", ios::in); //以只读方式打开hello.txt if(!ifs) //判断文件打开是否成功 cout << "文件打开失败" << endl; else cout << "文件打开成功" << endl; ifs.close(); //关闭文件 return 0; }运行结果:
文件打开成功
示例分析:- 第 6 行代码创建 ifstream 类对象 ifs;
- 第 7 行代码通过对象 ifs 调用 open() 函数打开 hello.txt 文件;
- 第 8~11 行代码判断文件打开是否成功,如果文件打开失败,就输出“文件打开失败”;如果文件打开成功,就输出“文件打开成功”;
- 第 12 行代码通过对象 ifs 调用 close() 函数关闭文件。
声明:《C++系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。