檔案和檔案流

2021-09-11 06:37:03 字數 1866 閱讀 9741

12.1 c+檔案流的基本概念

12.1.1檔案及及分類

1.程式檔案

包括源程式檔案(字尾名.cpp)、目標檔案(字尾為.obj)、可執行檔案(字尾名.exe)。這類檔案包含的是文字和二進位制程式**。

2.資料檔案

檔案的內容不是程式,而是供程式讀寫的資料。

12.1.2 c++檔案流基礎

1.ifstream:由istream派生而來,提供讀檔案的功能。

2.ofstream:由ostream派生而來,提供寫檔案的功能。

3.fstream:由iostream派生而來,提供讀寫同乙個檔案的功能。

12.2 c++檔案流的建立和關閉

12.2.1 檔案流物件的建立

在c++程式中,如果要對檔案進行讀寫操作,首先需要定義檔案流物件,可以在定義檔案流物件的同時開啟檔案,在只需要建立檔案流物件的同時指定檔名就可以了,這是該檔案流物件的相應的磁碟檔案之間建立的連線,也就是該物件開啟了指定的檔案,接下來就可以通過操作此檔案流物件完成檔案的讀寫任務。

12.2.2 檔案流物件的關閉

在c++程式中,檔案的開啟和關閉總是成對出現,如果沒有開啟無法進行檔案的正常讀寫,會造成資料的丟失和資源的一直被占用。

12.2 c++檔案流的讀寫

12.3.1順序讀寫

在順序讀入中,先讀入檔案前面的資料,件後面的資料。在順序寫入時,先寫入的資料存放在檔案的位置,後接入的資料存放在檔案從前到後面的位置進行的讀寫操作。

12.3.2 隨機讀寫

在檔案中前的友誼記錄當前讀寫位置的變數。

成為檔案讀寫位置的指標。順序讀寫時,每寫乙個資料後,位置指標到移動到他後面乙個位置。如果讀寫的資料項包含了多個位元組,資料項讀寫向讀寫完成後,就能實現隨機讀寫。

1.seek()和seekp()

2.2和ios::end:表示輸入檔案流的結束位置。

3.tellg()和teelp()

12.4 c語言檔案基礎

在c語言中,每個使用的檔案在記憶體中都會開闢乙個新的檔案資訊區,用來儲放檔案的相關資訊。這些資訊儲存在結構體變數中,該結構體型別由系統宣告,取名file。

12.4.2開啟與關閉檔案

1.使用fopen開啟檔案

fopen函式的呼叫方式為:

fopen(檔名,檔案開啟方式);

2.使用fclose關閉檔案

其呼叫方式

fclose(檔案指標);

12.4.3 檔案的讀寫

1.從檔案輸入和輸出乙個字元

c語言提供了乙個輸出乙個字元到磁碟檔案fputc函式。

fputs(ch,fp);

2.從檔案輸入和輸出乙個字串

c語言提供了乙個輸出乙個字串到磁碟檔案

fets函式

fgets(str,n,fp);

4.從檔案按照記錄的方式輸入輸出資料

c語言提供了乙個按記錄方式輸入資料的函式fread。

fread(buffer,size,count,fp);

c語言提供了乙個按記錄方式輸入資料的函式fwrite。

fwithe(buffer,size,count,fp);

5.檔案的隨機讀取

1.fseek函式

fseek函式的功能位置指標移動到所,指標移動到所需的位置。

fseek(檔案型別指標,位移量,起始點)

2.ftell函式

ftell函式的作用是得到檔案位置指標的當前位置。

eg:ftell(fp);

3.rewind函式

rewind函式的作用是返回到檔案開頭返回到檔案開頭

eg:rewind(fp);

檔案流和 檔案描述符

include apue.h int glob 6 int main void else if pid 0 i printf pid d,glob d,var d n getpid glob,var sprintf buf,d n i write stdout fileno,buf,strlen b...

檔案流和檔案描述符

檔案流和檔案描述符 檔案流和 檔案描述符 2011 10 19 16 08 apue 中的一道課後題 習題8.1 include apue.h int glob 6 int main void else if pid 0 i printf pid d,glob d,var d n getpid gl...

載入樹和檔案流

private void loadtree string path,treenode node else 如果不是null 就將節點載入到傳進來的節點下面.if directory.getdirectories dir length 0 判斷當前遍歷到的目錄下面是否還有子目錄.private voi...