文件在编程中扮演着重要的角色。它允许永久存储数据。 C++ 语言提供了一种机制,可以将程序的输出存储在文件中并从磁盘上的文件进行浏览。这种机制称为文件处理。为了执行文件处理,使用的一些通用函数如下:
- open():此函数有助于创建文件并以不同模式打开文件,如输入操作、输出操作、二进制模式等。
- close():此函数有助于关闭现有文件。
- get():此函数有助于从文件中读取单个字符。
- put():此函数有助于在文件中写入单个字符。
- read():此函数有助于从文件中读取数据。
- write():这个函数帮助我们将数据写入文件。
流是一种抽象,表示在其上执行输入和输出操作的工具。流通常表示为不确定长度的字符的源或目标,这取决于它的用法。到目前为止,提供cin和cout函数的头文件分别用于要求来自控制台的输入和将输出写入控制台。在 C++ 中有一组文件处理方法。这些包括 ifstream、ofstream 和 fstream。这些类是从 fstreambase 和相应的 iostream 类中获得的。这些类被设计为能够管理在 fstream 中声明的磁盘文件,因此该文件必须包含在任何使用文件的程序中。
fstream 库:Fstream 是一个由 ofstream 和 ifstream 组成的库,这意味着它可以创建文件、向文件写入信息和从文件读取信息。这个头文件一般用作表示文件流的数据类型。它用于描述打开、读取、获取输入和关闭文件等的语法。
如何关闭文件?为了使用磁盘文件来存储数据,需要就文件及其预期用途确定以下参数。需要注意的参数如下:
- 文件的名称。
- 文件的数据类型和结构。
- 目的(读、写数据)。
- 开启方式。
- 使用后关闭文件。
本文重点介绍关闭文件。在某种情况下,如果 C++ 程序终止,则它会自动刷新所有流,释放所有分配的内存,并关闭所有打开的文件。因此,使用 close() 函数关闭 file-related 流是一个不错的选择,它是 ifsream、ofstream 和 fstream 对象的成员。
用法:
close()
属性:
- 返回值:close() 函数不提供返回值,这意味着如果操作失败,包括在调用之前没有打开文件,则为流设置 failbit 状态标志(如果该状态标志是使用成员注册的,则可能抛出 ios_base::failure例外。
- Exception handling:当函数出现异常并且流处于有效状态时,内部操作抛出的任何异常都会被函数捕获并在关闭文件后重新抛出。只有当函数失败(设置失败位状态标志)并且成员异常被设置为针对该状态抛出时,它才会向成员类型失败抛出异常。
- 它修改 fstream 对象。对等效流的并发访问可能会导致数据竞争。
下面是实现 close() 函数的 C++ 程序:
C++
// C++ program to implement close() function
#include <fstream>
#include <iostream>
using namespace std;
// Driver Code
int main()
{
char data[100];
// Open a file in write
// mode.
ofstream outfile;
outfile.open("gfg.dat");
cout << "Writing to the file" << endl;
cout << "Enter your name:";
// This function will take the entire
// the user enters and will store in
// the "data" array declare above
cin.getline(data, 100);
// Write inputted data into
// the file.
outfile << data << endl;
// Here we make use of the close()
// function to close the opened file
outfile.close();
// Open a file in read mode
ifstream infile;
infile.open("gfg.dat");
cout << "Reading from the file"
<< endl;
infile >> data;
// Write the data at the screen
cout << data << endl;
// Close the opened file
infile.close();
return 0;
}
输出:
注:本文由纯净天空筛选整理自analystayush大神的英文原创作品 std::fstream::close() in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。