檔案操作概念

2021-07-10 04:01:50 字數 2638 閱讀 7689

檔案讀寫api

fgetc fputc 按照字元讀寫檔案

fputs fgets 按照行讀寫檔案(讀寫配置檔案)

fread/fwrite 按照塊讀寫檔案(大資料塊遷移)

1.標準檔案的讀寫

1.1檔案的開啟fopen()

檔案的開啟操作表示將給使用者指定的檔案在記憶體分配乙個file結構去,並將該結構的指標返回給使用者程式,以後使用者程式就可以用此file指標來實現對指定檔案的訪問操作了。當使用開啟函式時,必須給出檔名,檔案操作方式(讀、寫或讀寫),如果該檔名不存在,就意味著建立(只對寫檔案而言,對讀檔案則出錯),並將檔案指標指向檔案開頭。若已有乙個同名檔案存在,則刪除該檔案,若無同名檔案,則建立該檔案,並將檔案指標指向檔案開頭。

fopen(char *filename,char *type);

其中*filename是要開啟的檔名指標,一般用雙引號括起來的檔名表示,也可使用雙反斜槓隔開的路徑名。而*type引數表示了對開啟檔案的操作方式。其可採用的操作方式如下:

方式含義

"r"         開啟,唯讀

"w" 開啟,檔案指標指到頭,只寫

"a" 開啟,指向檔案尾,在已存檔案中追加

"rb" 開啟乙個二進位制檔案,唯讀

"wb" 開啟乙個二進位制檔案,只寫

」ab「 開啟乙個二進位制檔案,進行追加

」r+「 以讀/寫方式開啟乙個已存在的檔案

」w+「 以讀/寫方式開啟乙個新的文字檔案

」a+「 以讀/寫方式開啟乙個檔案進行追加

」rb+「 以讀/寫方式開啟乙個二進位制檔案

"wb+" 以讀/寫方式建立乙個新的二進位制檔案

"ab+" 以讀/寫方式開啟乙個二進位制檔案進行追加

當用fopen()成功開啟乙個檔案時,該函式將返回乙個file指標,如果檔案開啟失敗,將返回乙個null指標,如想開啟test檔案,進行寫:

file *fp;

if(fp=fopen("test","w")==null)

else

當開啟多個檔案進行操作,又要同時關閉,可採用fcloseall()函式,它將關閉所有在程式中開啟的檔案

int fcloseall();

若關閉4個檔案,則當執行:

n=fcloseall();//n=4

3.檔案的讀寫

(1)讀寫檔案中字元的函式(一次只讀寫檔案中的乙個字元):

int fgetc(flle *stream);

int fgetchar(void);

int fputc(int ch,file *stream);

int fputchar(int ch);

int getc(file *stream);

int putc(int ch,file *stream);

其中fgetc()函式將把由流指標指向的檔案中的乙個字元讀出,例如:

ch=fgetc(fp);

將把流指標fp指向的檔案中的乙個字元讀出,並賦給ch,當執行fgetc()函式時,若當時檔案指標指到到檔案尾,即遇到檔案結束標誌eof(其對應值為-1),該函式返回乙個-1給ch。在程式中常用該函式檢查返回值是否為-1來判斷是否已讀到檔案尾,從而決定是否繼續。

#include 「stdio.h"

main()

while((ch=fgetc(fp))!=eof) fputc(ch,stdout);

fclose(fp);

}字元讀寫案例:

int _tmain(int argc, _tchar* argv)

char ch[20] = "hello world";

int i = 0;

while (!feof(fp))

fclose(fp);

return 0;

}

按行讀案例:

int _tmain(int argc, _tchar* argv)

char buf[1024];

while (!feof(fp))

printf("%s",buf); }

fclose(fp);

return 0;

}

按塊寫:

struct teacherteacher;

int _tmain(int argc, _tchar* argv)

struct teacher tarray[3];

for (int i = 0; i < 3;i++)

for (int i = 0; i < 3; i++)

if (fp!=null)

fclose(fp);

return 0;

}

按塊寫:

struct teacherteacher;

int _tmain(int argc, _tchar* argv)

struct teacher tarray[3];

for (int i = 0; i < 3; i++)

for (int i = 0; i < 3; i++)

if (fp!=null)

fclose(fp);

return 0;

檔案(一) 基本概念和操作

屬性 描述乙個客體某一方面特徵的資料資訊 字段 資料項 記錄 反映乙個客體資料資訊的集合 屬性的集合 檔案 具有相同屬性定義的記錄的集合 關鍵字 區分不同記錄的屬性或屬性組 有主次關鍵字之分 記錄呈現在使用者眼前的排列的先後次序關係 使用者看到的,一種線性結構 檔案在儲存介質上的組織方式,有如下幾種...

檔案的概念

昨天老師講了c 檔案的操作 訪問的方式 順序讀寫檔案 隨機讀取檔案 檔案流是以外村為輸入輸出物件的資料流 輸出檔案流 從記憶體流向磁碟檔案的資料 輸入檔案流 從磁碟檔案流向記憶體的資料 1.開啟檔案 流類 物件名 檔名,方式 ifstream infile d 1.dat ios in ofstre...

檔案的概念

檔案的定義 檔案是作業系統中的乙個重要概念。檔案是以計算機硬碟為載體 計算機以程序為基本單位進行資源的排程和分配 而在使用者進行的輸入 輸出中,則以檔案為基本單位。大多數應用程式的輸入都是通過檔案來實現的,其輸出也儲存在檔案中,以便資訊的長期儲存及將來的訪問。當使用者將檔案用於應用程式的輸入 輸出時...