文 件①
檔案的概念:所謂「檔案」是指一組相關資料的有序集合。這個資料集有乙個名稱,即檔名。
②檔案通常是駐留在外部介質(如磁碟)上的,在使用時才調入記憶體中來。
③☆
檔案緩衝區
的概念: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的窗體設計,隨便畫了個介面,顯示一下...