C語言檔案操作 一

2022-07-11 09:30:11 字數 1862 閱讀 9296

c 語言對檔案進行操作之前必須先「開啟」檔案,操作(讀和寫)完成後,再「關閉」檔案。

開啟檔案 --> 操作檔案(檔案讀寫)--> 關閉檔案

1、檔案操作

操作檔案的時候,c語言為檔案分配乙個資訊區,該資訊區包含檔案描述資訊,緩衝區位置、緩衝區大小、檔案讀寫到的位置等基本資訊,這些資訊用乙個結構體來存放(struct_io_file),這個結構體有乙個別名file(typedef struct_io_file file), file結構體和對檔案操作的庫函式在stdio.h標頭檔案中宣告。

typedef struct

file;

1.1 開啟檔案的函式

fopen函式中會動態分配乙個file結構體大小的記憶體空間,並把file結構體內存的位址作為函式的返回值,程式中用file結構體指標存放這個位址。

fopen來建立乙個新的檔案或者開啟乙個已存的檔案,呼叫fopen函式成功後,返回乙個檔案指標( file *),函式的原型如下:

file *fopen( const char * filename, const char * mode );
引數filename 是字串,表示需要開啟的檔名,可以包含目錄名,如果不包含路徑就表示程式執行的當前目錄。實際開發中,採用檔案的全路徑。

引數mode也是字串,表示開啟檔案的方式(模式)。

返回值:開啟成功,返回該檔案對應的 file 型別的指標;開啟失敗,返回 null。故需定義 file 型別的指標變數,儲存該函式的返回值。可根據該函式的返回值判斷檔案開啟是否成功。

方式

含 義

說 明

r

唯讀檔案必須存在,否則開啟失敗。

w

只寫如果檔案存在,則清除原檔案內容;如果檔案不存在,則新建檔案。

a

追加只寫

如果檔案存在,則開啟檔案,如果檔案不存在,則新建檔案。

r+

讀寫檔案必須存在。在唯讀 r 的基礎上加 '+' 表示增加可寫的功能。

w+

讀寫在只寫w的方式上增加可讀的功能。

a+

讀寫在追加只寫a的方式上增加可讀的功能。

1.2 關閉檔案的函式

fclose函式除了關閉檔案,還會釋放file結構體占用的記憶體空間。

函式的原型:

int fclose(file *fp);
fp為fopen函式返回的檔案指標。

/*

* 程式名:12-02.c,此程式用於檔案開啟和關閉簡單操作

*/#include int main()

printf("d:\學習\111.txt fp =%p \n", fp);//%p是列印位址的,列印檔案的位址

fclose(fp) ;

}

在windows 裡面寫路徑時候用用兩個反斜槓"//"或者正斜槓「/」來表示路徑,主要不能使用乙個反斜槓"\"

windows是兩個反斜槓「\\」,也可以使用正斜槓「/」

linux 用正斜槓「/」

注意事情:

1)呼叫fopen開啟檔案的時候,一定要判斷返回值,如果檔案不存在、或沒有許可權、或磁碟空間滿了,都有可能造成開啟檔案失敗。

2)檔案指標是呼叫fopen的時候,系統動態分配了記憶體空間,函式返回或程式退出之前,必須用fclose關閉檔案指標,釋放記憶體,否則後果嚴重。

3)如果檔案指標是空指標或野指標,用fclose關閉它相當於操作空指標或野指標,後果嚴重。

C語言檔案操作一

檔案在c語言的定義如下 typedef struct iobuf file 可以使用file來定義變數 檔案操作在c語言中的定義 file operations crtimp file cdecl mingw nothrow fopen const char const char crtimp fi...

C語言檔案操作解析 一

c語言檔案操作解析 一 在討論c語言檔案操作之前,先了解一下與檔案相關的東西。一.文字檔案和二進位制檔案 文字檔案的定義 由若干行字元構成的計算機檔案,存在於計算機系統中。文字檔案只能儲存檔案中的有效字元資訊,不能儲存影象 聲音等資訊。狹義上的二進位制檔案則指除開文字檔案之外的檔案,如 doc文件。...

C語言檔案操作解析 一

在討論c語言檔案操作之前,先了解一下與檔案相關的東西。一.文字檔案和二進位制檔案 文字檔案的定義 由若干行字元構成的計算機檔案,存在於計算機系統中,通常在檔案最後一行放置檔案結束標識。文字檔案只能儲存檔案中的有效字元資訊,不能儲存影象 聲音等資訊。狹義上的二進位制檔案則指除開文字檔案之外的檔案,如 ...