首页 > 编程笔记

C++打开文件和关闭文件

文件最基本的操作就是打开和关闭,在对文件进行读写之前,需要先打开文件;读写结束之后,要及时关闭文件。下面将针对文件的打开与关闭进行讲解。

1) 打开文件

C++ 提供了两种打开文件的方式:
第一种调用文件流类的构造函数打开文件方式就是在创建文件流对象时传入文件名和文件打开模式。

下面主要讲解第二种调用open()函数打开文件的方式。

ifstream 类、ostream 类和 fstream 类都提供了成员函数 open() 用于打开文件,open() 函数声明如下所示:
void open(const char* filename, int mode);
在上述函数声明中,参数 filename 表示要打开的文件;参数 mode 表示文件打开模式。如果文件打开失败,则文件流对象的值为 0。 文件打开模式就是指以什么方式打开文件,如只读模式、只写模式等。

C++ 常用的文件打开模式及含义如表 1 所示。

表1  C++常用的文件打开模式及含义含义
文件打开模式 含义
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;
}
运行结果:

文件打开成功

示例分析:

优秀文章