📜  C++ 中的 std::fstream::close()

📅  最后修改于: 2022-05-13 01:54:42.990000             🧑  作者: Mango

C++ 中的 std::fstream::close()

文件在编程中扮演着重要的角色。它允许永久存储数据。 C++ 语言提供了一种机制,可以将程序的输出存储在文件中并从磁盘上的文件进行浏览。这种机制称为文件处理。为了执行文件处理,使用的一些通用函数如下:

  • open() 此函数有助于创建文件并以不同模式打开文件,例如输入操作、输出操作、二进制模式等。
  • close() 此函数有助于关闭现有文件。
  • get():此函数有助于从文件中读取单个字符。
  • put() :此函数有助于在文件中写入单个字符。
  • read() 此函数有助于从文件中读取数据。
  • write() 这个函数帮助我们将数据写入文件。

流是一种抽象,表示在其上执行输入和输出操作的工具。流通常表示为不确定长度的字符的源或目标,这取决于它的用法。到目前为止,提供cincout函数的头文件分别用于要求来自控制台的输入和将输出写入控制台。在 C++ 中有一组文件处理方法。这些包括 ifstream、ofstream 和 fstream。这些类是从fstreambase和相应的 iostream 类中获得的。这些类被设计为能够管理在 fstream 中声明的磁盘文件,因此该文件必须包含在任何使用文件的程序中。

fstream 库: Fstream 是一个由ofstreamifstream组成的库,这意味着它可以创建文件、向文件写入信息和从文件读取信息。这个头文件一般用作表示文件流的数据类型。它用于描述打开、读取、获取输入和关闭文件等的语法。

如何关闭文件?为了使用磁盘文件来存储数据,需要就文件及其预期用途确定以下参数。需要注意的参数如下:

  • 文件的名称。
  • 文件的数据类型和结构。
  • 目的(读、写数据)。
  • 开启方式。
  • 使用后关闭文件。

本文重点介绍关闭文件。在某种情况下,如果 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;
}


输出:

想要从精选的视频和练习题中学习,请查看C++ 基础课程,从基础到高级 C++ 和C++ STL 课程,了解基础加 STL。要完成从学习语言到 DS Algo 等的准备工作,请参阅完整的面试准备课程