当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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() 函数关闭 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++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。