C 檔案檔案處理相關函式方法

Mondo 科技 更新 2024-01-28

在C++程式開發中,也會有很多檔案上傳、檔案寫入等業務需要針對檔案操作進行開發,檔案處理也是任何應用的重要組成部分。 C++ 有幾種建立、讀取、更新和刪除檔案的方法。 本主題介紹用於操作 C++ 檔案的常用函式方法。

注意:上述屬性可以用“or”連線,例如,ios::out|ios::binary。檔案的開啟模式標記表示檔案的使用方式,這些標記可以單獨使用,也可以組合使用。

1)ofstream:寫入操作,輸出檔案類。

2)ifstream:讀取操作,輸入檔案類。

3)fstream:可以同時讀寫的檔案類。

1)檔案開啟功能

ofstreamifstreamfstreamopen會員功能:

void open(const char* szfilename, int mode)

szfilename引數是指向檔名的指標mode引數是檔案的開啟模式標記。

例如

#include 

#include

using namespace std;

int main()

ifstream infile;

infile.open("c:\\tmp\\test.txt", ios::in);

如果 (infile) 為 true,則檔案開啟成功。

infile.close();

elsecout <

ofile.open("test1.txt", ios::out);

if (!ofile) true,則檔案開啟不正確。

cout <

ofile.open("tmp\\test2.txt", ios::out | ios::in);

如果 (ofile) 為 true,則檔案開啟成功。

ofile.close();

elsecout <

iofile.open("..\test3.txt", ios::out | ios::in | ios::trunc);

if (!iofile)

cout <

return 0;

2)檔案關閉功能open()開啟檔案的方法是在檔案流物件和檔案之間建立關聯的過程。 叫close()方法關閉開啟的檔案,檔案流被銷毀,將來可用於關聯其他檔案。

語法:void close( )。

例如

#include 

using namespace std;

int main()

const char *url="www.cj**apy.com";

ofstream outfile("site.txt", ios::out);

到 URLtxt 檔案。

outfile.write(url, 30);

關閉已開啟的檔案。

outfile.close();

return 0;

3) ofstream::is_openbool is_open():檔案開啟時返回 true,否則返回 false

C++ 輸入檔案流ifstream遺產:

ios_base

1)istream::get()

istream&get(char&c):從cin輸出字元,例如cin.get(c)

istream& get (char* s, streamsize n): 從cinistream,最大字串長度為n,最後乙個字元是字串結尾字元。

例如

char c[20];

cin.get(c,20);

istream& get (char* s, streamsize n, char delim):delim是分隔字元,預設值應為(換行符),如果人為定義,則可以任意定義,例如,
cin.get(c,20,'a');當遇到字元時,只有 A 字元之前的字串部分輸出到 C 字串中,此時 A 字元不是從 Cin 輸入緩衝區中提取的,而是從後面的變數中提取的,GetLine 直接丟棄該字元;
istream& ignore (streamsize n = 1, int delim = eof): discarded 更多n字元,或遇到dlim直到。

2)istream::getline

istream& getline (char* s, streamsize n):將一行讀入字元陣列。 違約delim是換行符,遇到後丟棄,從第二次讀取delim開始閱讀後。

istream& getline (char* s, streamsize n, char delim ): 定義你自己的塞子delim

3)std::getline (string)

使用者定義的截斷字元。 

istream& getline (istream& is, string& str, char delim);

istream& getline (istream&& is, string& str, char delim);C++11 標準。

截斷字元為預設值''

istream& getline (istream& is, string& str);

istream& getline (istream&& is, string& str);C++11 標準。

從流物件中讀取一行儲存到字串 str 中,直到遇到截斷字元,如果遇到截斷字元,則將其從流中取出然後丟棄(不儲存,下一次操作的起點在它之後)函式呼叫之前 str 的內容將被覆蓋。

例如

#include

#include

#include

using namespace std;

int main()

string str;

ifstream ifs("test.txt");

if(!ifs)

while( getline(ifs,str))

return 0;

4)istream::readIStream& Read (char* s, streamsize n):從輸入流中提取 n 個字元並將它們儲存在陣列中s,則未檢測到內容,並且未應用字串結束符號

例如

#include // std::cout

#include // std::ifstream

int main ()

return 0;

5)istream::putbackiStream & Putback (char c):從輸入流中讀取乙個字元並返回它。

例如

char c = std::cin.get();

std::cin.putback (c);

6)istream::ungetistream & unget():類似地將最後乙個讀取字元返回到輸入流putback()

例如

char c = std::cin.get();

std::cin.unget();

5.檔案寫入功能方法C++ 輸出檔案流ofstream遺產:

ios_base

1)std::ostream::operator<<

用法和cout <<同樣,將資料寫入檔案最方便的函式,過載常用的資料型別。

arithmetic types (1)

ostream& operator<< bool val);

ostream& operator<< short val);

ostream& operator<< unsigned short val);

ostream& operator<< int val);

ostream& operator<< unsigned int val);

ostream& operator<< long val);

ostream& operator<< unsigned long val);

ostream& operator<< long long val);

ostream& operator<< unsigned long long val);

ostream& operator<< float val);

ostream& operator<< double val);

ostream& operator<< long double val);

ostream& operator<< void* val);

stream buffers (2)

ostream& operator<< streambuf* sb );

manipulators (3)

ostream& operator<< ostream& (pf)(ostream&))

ostream& operator<< ios& (pf)(ios&))

ostream& operator<< ios_base& (pf)(ios_base&))

2)ostream::put

ostream & put (char c):插入字元c進入溪流。

3)ostream::write

ostream& write (const char* s, streamsize n): 從陣列s中等n字元入到流中。

例如

#include 

#include

using namespace std;

int main()

2.讀出txt

ifstream in("out.txt");

char buffer[200];

if(in.is_open())

return 0;

1)istream::ignoreistream& ignore (Streamsize n = 1, int delim = eof):從輸入流中讀取n字元並丟棄或讀取delim然後字元停止閱讀。

2)istream::peek

int peek():返回輸入流中的下乙個字元,並將其保留在輸入流中作為下一次讀取的起點。 返回值為整數 ASCLL 碼值,可以使用char(c)轉換為字元。

3)istream::tellg

streampos tellg():讀取輸入流中文指標的位置,返回值可以轉換為int

例如

is.seekg (0, is.end);

int length = is.tellg();

is.seekg (0, is.beg)

4)istream::seekgistream&seekg (streampos pos),istream&seekg (streamoff off, ios base::seekdir way): 引數pos是流中可以轉換為的絕對位置int引數off是偏移量,其中way相關,型別為int引數way您可以選擇下表中的任何常量。

5)ios::rdstate

iostate rdstate():返回當前流中的內部錯誤狀態iostate二進位數,需要按位算術才能獲得相應位置的值。 可以使用此功能的功能:good()eof()fail()bad()更換。

例如

#include

#include

#include

using namespace std;

int main ()

elseprint_state(ifs);

return 0;

這就是這次的全部內容

相關問題答案

    檔案銷毀業務

    檔案銷毀業務是一項重要的服務,在保護個人和機構的私人資訊方面發揮著至關重要的作用。本文將對檔案銷毀業務及其相關內容進行深入分析,為讀者提供更豐富的視角。.檔案銷毀業務的重要性在資訊時代,個人和機構的重要檔案包含大量敏感資訊,如個人身份證號碼 銀行賬戶資訊 公司機密等。處理不當的檔案可能被惡意利用,給...

    銷毀檔案和檔案

    銷毀檔案和檔案是一項非常重要和敏感的任務。隨著科技的進步和資訊時代的到來,大量的紙質檔案和電子檔案不斷產生,銷毀這些檔案變得尤為重要。以下是對檔案和檔案銷毀的深入探討 .隨著資訊科技的飛速發展,電子辦公環境已廣泛應用於各行各業。然而,許多企業和機構仍然需要處理大量的紙質檔案和舊的電子檔案。這些檔案包...

    檔案定期銷毀

    定時檔案銷毀是一項非常重要的功能,可確保檔案的安全性和私隱性。無論您是企業還是個人,您都需要保護您的敏感資訊,避免因檔案洩露而造成損失。下面將深入探討定時銷毀檔案的含義,以及 一些相關內容,使其更加豐富。.定期銷毀檔案的意義定期銷毀檔案是一種系統有效的檔案管理方式。首先,它有效地降低了安全風險。在某...

    檔案是如何銷毀的

    檔案銷毀是一項非常重要的工作,值得我們關注,無論是企業還是個人,都需要對各類檔案進行有效的處理和銷毀,以防止資訊洩露和安全風險。本文將對檔案銷毀進行深入分析,並提供一些相關內容,為文章增添豐富性。.檔案銷毀的重要檔案包含各種敏感和機密資訊,例如個人身份證號碼 銀行賬戶 公司財務報表等。這些檔案一旦落...

    如何銷毀檔案

    文件銷毀是保護資料安全和私隱的重要組成部分。當檔案不再需要使用或儲存時,正確的銷毀方法可以有效防止檔案被惡意使用或洩露。本文將深入探討與檔案銷毀相關的問題,並提出幾種常見的檔案銷毀方法。.物理破壞 物理銷毀是銷毀檔案的最常見方法之一。此方法涉及粉碎 燒錄或粉碎檔案。通過完全銷毀檔案的物理形式,確保檔...