C語言學習 檔案

2021-08-20 03:03:24 字數 2690 閱讀 5436

文 件①

檔案的概念:所謂「檔案」是指一組相關資料的有序集合。這個資料集有乙個名稱,即檔名。

②檔案通常是駐留在外部介質(如磁碟)上的,在使用時才調入記憶體中來。

檔案緩衝區

的概念:1)檔案緩衝區是記憶體中的一塊區域,用於進行檔案讀寫操作時資料的暫存。在計算機系統中,資料是從記憶體中的程式資料區到檔案緩衝區暫存,當緩衝區放滿後,資料才被整塊送到外儲存器上的檔案中。

2)磁碟的訪問單位是「塊」。

3)設立緩衝區的目的:提高效率!  有檔案緩衝區可以減少和磁碟打交道的次數。

④檔案的開啟與關閉:

(1)檔案的開啟

fopen()函式。呼叫形式:檔案指標名=fopen(檔名,開啟檔案方式)

eg:    file *fp;

fp=fopen("file1","r");

其中:「檔案指標名」必須是說明為file型別的指標變數。                  

「開啟方式」如下表所示:

(2)檔案的關閉

fclose()函式。檔案一旦使用完畢,應及時關閉,避免檔案寫資料時,未將緩衝區充滿,因而未上傳到磁碟上,造成資料的丟失。fclose()函式強制系統將緩衝區中的所有資料送到磁碟。

呼叫形式:fclose(檔案指標)eg:fclose(fp);

⑤檔案順序讀寫:

1)讀字元函式    

fgetc()     

呼叫形式:字元變數=fgetc(檔案指標);  eg:ch=fgetc(fp); 意義:從fp指向的檔案中讀取乙個字元 並送入ch變數中 。

2)寫字元函式fputc()

呼叫形式:fputc(字元量,檔案指標);     eg:fputc('a',fp); 意義:把字元a寫入fp所指向的檔案中 。

3)讀字串函式  

fgets()      

呼叫形式:fgets(字元陣列名,n,檔案指標)  eg:fgets(str,n,fp); 意義:從fp所指的檔案中讀出n-1個字元送入字元陣列str中。

4)寫字串函式fputs()

呼叫形式:fputs(字串,檔案指標)       eg:fputs("abcd",fp); 意義:把字串「abcd」寫入fp所指的檔案之中。

5)格式化讀函式fscanf()

/*fscanf函式與fprintf函式與scanf和printf函式功能相似,區別在於scanf和printf的讀寫物件

6)格式化寫函式fprintf()

是鍵盤和顯示器,而

fscanf和fprintf讀寫物件是磁碟檔案

。*/⑥:檔案的隨機讀寫

檔案的順序讀寫是指讀寫檔案只能從頭開始,但實際問題中,有時需要只需檔案的某一指定部分。進而來到檔案的隨機讀寫。

1)檔案定位

為了準確控制檔案中的讀寫位置,c語言為每個檔案在開啟操作時,在檔案結構體中設有乙個讀寫位置指標,這個指標指示著當前讀寫位置。在檔案開啟的初始狀態,一般這個指標都指向檔案的開始處(但若以追加的方式開啟,是指向檔案的末尾處),隨著檔案的讀寫,這個指標會自動移動。

移動檔案內部指標的函式有兩個:

rewind()函式關於rewind()函式,詳見我的另一篇部落格《

c語言中的rewind()函式

fseek()函式呼叫形式:fseek(檔案指標,位移量,起始點);

2)隨機讀寫函式

fwrite()    

呼叫形式: fwrite(buffer,size,count,fp);  意義:以buffer為首位址,連續n個size大小的資料塊寫入fp所指的檔案中。

fread()呼叫形式: fread(buffer,size,count,fp);

size:要讀寫的位元組數,一般由含sizeof運算子的表達是給出。

count:要進行讀寫多少個size位元組的資料項。

·fwrite()和fread()函式在呼叫成功時,返回函式值為count(輸入/輸出資料項個數)的值,如果呼叫失敗(輸入/輸出出錯),則返回0值。

·利用fread()和fwrite()函式還可從二進位制檔案中讀寫

結構體型別的資料

。eg:  

struct person

teacher;

fwrite(&teacher,sizeof(struct person),1,fp);

小結:1. c系統把檔案當作乙個「流」,按位元組進行處理。

2. c檔案按編碼方式分為二進位制檔案和ascii檔案。

3. 檔案可按位元組,字串,資料塊為單位讀寫,檔案也可按指定的格式進行讀寫。

4. 檔案內部的位置指標可指示當前的讀寫位置,移動該指標可以對檔案實現隨機讀寫。

C語言練習 檔案操作

在c程式中使用檔案,需要完成以下操作。1 宣告乙個file 型別的指標變數,程式通過改變量對所指向的檔案進行操作。2 通過呼叫fopen函式將此變數和某個實際檔案相聯絡,這一操作稱為開啟檔案。開啟乙個檔案需要指定乙個檔名,並且指定該檔案是用於輸出還是輸入 讀還是寫 3 呼叫適當的檔案處理函式完成必要...

C語言學習筆記 檔案讀寫

如何開啟 建立 關閉文字檔案或二進位制檔案?我們通常使用fopen 函式來建立新檔案或開啟乙個已存在的檔案,這樣呼叫會初始化型別file的乙個物件,型別file包含了所有用來控制流的必要的資訊。file fopen const char filename,const char mode filena...

C 語言學習筆記 檔案操作

入門級學習c 語言,避免不了想讓自己的程式能和外界打交道,哪怕是乙個 txt 的記事本,那麼怎麼實現檔案的操作,這裡只是舉個小例子,還有待開發和修正哈 如果是只是為了研究這個操作怎麼寫,就建立乙個 c 的命令列工程就行了,我這裡是為了做上位機,整了個windows的窗體設計,隨便畫了個介面,顯示一下...