C++ 中的 std::fstream::close()
文件在编程中扮演着重要的角色。它允许永久存储数据。 C++ 语言提供了一种机制,可以将程序的输出存储在文件中并从磁盘上的文件进行浏览。这种机制称为文件处理。为了执行文件处理,使用的一些通用函数如下:
- open() :此函数有助于创建文件并以不同模式打开文件,例如输入操作、输出操作、二进制模式等。
- close() :此函数有助于关闭现有文件。
- get():此函数有助于从文件中读取单个字符。
- put() :此函数有助于在文件中写入单个字符。
- read() :此函数有助于从文件中读取数据。
- write() :这个函数帮助我们将数据写入文件。
流是一种抽象,表示在其上执行输入和输出操作的工具。流通常表示为不确定长度的字符的源或目标,这取决于它的用法。到目前为止,提供cin和cout函数的头文件分别用于要求来自控制台的输入和将输出写入控制台。在 C++ 中有一组文件处理方法。这些包括 ifstream、ofstream 和 fstream。这些类是从fstreambase和相应的 iostream 类中获得的。这些类被设计为能够管理在 fstream 中声明的磁盘文件,因此该文件必须包含在任何使用文件的程序中。
fstream 库: Fstream 是一个由ofstream和ifstream组成的库,这意味着它可以创建文件、向文件写入信息和从文件读取信息。这个头文件一般用作表示文件流的数据类型。它用于描述打开、读取、获取输入和关闭文件等的语法。
如何关闭文件?为了使用磁盘文件来存储数据,需要就文件及其预期用途确定以下参数。需要注意的参数如下:
- 文件的名称。
- 文件的数据类型和结构。
- 目的(读、写数据)。
- 开启方式。
- 使用后关闭文件。
本文重点介绍关闭文件。在某种情况下,如果 C++ 程序终止,则它会自动刷新所有流,释放所有分配的内存,并关闭所有打开的文件。因此,这是一个很好的替代使用close()函数来关闭该文件相关的流,并且它是ifsream,ofstream和fstream的对象的成员。
句法:
close()
特性:
- 返回值: close()函数提供返回值,这意味着如果操作失败,包括在调用之前没有打开文件,则为流设置 failbit 状态标志(如果该状态可能会抛出 ios_base::failure标志是使用成员异常注册的。
- 异常处理:当函数出现异常并且流处于有效状态时,内部操作抛出的任何异常都会被函数捕获并在关闭文件后重新抛出。只有当函数失败(设置失败位状态标志)并且成员异常被设置为针对该状态抛出时,它才会向成员类型失败抛出异常。
- 它修改fstream对象。对等效流的并发访问可能会引入数据竞争。
下面是实现 close()函数的 C++ 程序:
C++
// C++ program to implement close() function
#include
#include
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;
}
输出: