文件在編程中扮演著重要的角色。它允許永久存儲數據。 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++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。