當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。