c 語言對檔案進行操作之前必須先「開啟」檔案,操作(讀和寫)完成後,再「關閉」檔案。
開啟檔案 --> 操作檔案(檔案讀寫)--> 關閉檔案
1、檔案操作
操作檔案的時候,c語言為檔案分配乙個資訊區,該資訊區包含檔案描述資訊,緩衝區位置、緩衝區大小、檔案讀寫到的位置等基本資訊,這些資訊用乙個結構體來存放(struct_io_file),這個結構體有乙個別名file(typedef struct_io_file file), file結構體和對檔案操作的庫函式在stdio.h標頭檔案中宣告。
typedef struct1.1 開啟檔案的函式file;
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語言檔案操作之前,先了解一下與檔案相關的東西。一.文字檔案和二進位制檔案 文字檔案的定義 由若干行字元構成的計算機檔案,存在於計算機系統中,通常在檔案最後一行放置檔案結束標識。文字檔案只能儲存檔案中的有效字元資訊,不能儲存影象 聲音等資訊。狹義上的二進位制檔案則指除開文字檔案之外的檔案,如 ...