C語言檔案操作

2021-12-30 01:26:01 字數 3069 閱讀 4827

1. fopen fclose

1.1 file * fopen(const char * path,const char * mode)

(1) return

檔案順利開啟後,指向該流的檔案指標就會被返回。如果檔案開啟失敗則返回null,並把錯誤**存在errno 中。

所以測試檔案是否開啟可以這樣:

if( fp == null )

do_error();

(2) mode:

r (讀)w(寫)a(追加)

b(二進位制操作)

+(允許讀寫)

r 以唯讀方式開啟檔案,該檔案必須存在。

r+ 以可讀寫方式開啟檔案,該檔案必須存在。

rb+ 讀寫開啟乙個二進位制檔案,允許讀寫資料。

rw+ 讀寫開啟乙個文字檔案,允許讀和寫。

w 開啟只寫檔案,若檔案存在則檔案長度清為0,即該檔案內容會消失。若檔案不存在則建立該檔案。

w+ 開啟可讀寫檔案,若檔案存在則檔案長度清為零,即該檔案內容會消失。若檔案不存在則建立該檔案。

a 以附加的方式開啟只寫檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾,即檔案原先的內容會被保留。(eof符保留)

a+ 以附加方式開啟可讀寫的檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾後,即檔案原先的內容會被保留。 (原來的eof符不保留)

wb 只寫開啟或新建乙個二進位制檔案;只允許寫資料。

wb+ 讀寫開啟或建立乙個二進位制檔案,允許讀和寫。

ab+ 讀寫開啟乙個二進位制檔案,允許讀或在檔案末追加資料。

at+ 開啟乙個叫string的檔案,a表示append,就是說寫入處理的時候是接著原來檔案已有內容寫入,不是從頭寫入覆蓋掉,t表示開啟檔案的型別是文字檔案,+號表示對檔案既可以讀也可以寫。

1.2 fclose( file* fp )

與fopen配對,當你yongfopen開啟檔案後,必須使用fclose關閉檔案。

2. fgetc fputc  字元

2.1 int fgetc(file *stream)

函式從輸入流的當前位置返回乙個字元,並將檔案指標指示器移到下乙個字元處,如果已到檔案尾,函式返回eof,此時 表示本次操作結束。

[cpp]

while( (ch = fgetc(fp)) != eof ) 

while( (ch = fgetc(fp)) != eof )

2.2 int fputc(int ch,file *stream)

函式完成將字元ch的值寫入所指定的流檔案的當前位置處,並將檔案指標後移一位。

fputc()函式的返回值是所寫入字元的值,出錯時返回eof。

2.3 getchar putchar

[cpp]

#define getchar() getc( stdin ) 

#define putchar( c )  putc( (c), stdout ) 

#define getchar() getc( stdin )

#define putchar( c )  putc( (c), stdout )

3. fgets fputs  行

3.1 char *fgets(char *line,int line_size,file *fp)

從流檔案fp中讀取至多line_size-1個字元,並把它們放入line指向的字元陣列中。讀取字元直到遇見回車符或eof (檔案結束符)為止,或讀入了所限定的字元數。

[cpp]

while( fgets(str, 128, fp) != null ) 

while( fgets(str, 128, fp) != null )

[cpp]

char* fgets( char *s, int n, file *fp ) 

char* fgets( char *s, int n, file *fp )

3.2 int fputs(char *line,file *fp)

操作成功時,函式返回0值,失敗返回非零值。

[cpp]

int fputs( char *line , file *fp ) 

int fputs( char *line , file *fp )

4. fscanf fprintf 格式化

4.1· int fscanf(file *stream,char *format,arg_list)

與scanf用法相同

4.2 int fprintf(file *stream,char *format,arg_list)

與printf用法相同

[cpp]

while( fscanf( fp, "%s%d", str, &i ) != eof ) 

while( fscanf( fp, "%s%d", str, &i ) != eof )

5. fread fwrite 塊

5.1 int fread(void *buf,int size,int count,file *stream)

fread()函式從stream 指向的流檔案讀取count (字段數)個字段,每個欄位為size(字段長度)個字元長,並把它們放到b u f(緩衝區)指向的字元陣列中。

fread()函式返回實際已讀取的字段數。若函式呼叫時要求讀取的字段數超過檔案存放的字段數,則出錯或已到檔案尾,實際在操作時應注意檢測。

5.2 int fwrite(void *buf,int size,int count,file *stream)

函式從buf(緩衝區)指向的字元陣列中,把count(字段數)個字段寫到stream所指向的流中,每個欄位為size個字元長, 函式操作成功時返回所寫字段數。關於成塊的檔案讀寫,在建立檔案時只能以二進位制檔案格式建立。

[cpp]

while ( !feof( fp ) ) 

while ( !feof( fp ) )

6. fseek

int fseek( file *fp, long offset , mode )

mode :

seek_set : 0 ——開頭

seek_cur: 1——當前

seek_end: 2——結尾

c語言檔案操作

rt null ch fgetc fp while ch eof fclose fp 本 例程式的功能是從檔案中逐個讀取字元,在螢幕上顯示。程式定義了檔案指標fp,以讀文字檔案方式開啟檔案 d jrzh example ex1 1.c 並使fp指向該檔案。如開啟檔案出錯,給出提示並退出程式。程式第1...

C語言檔案操作

1.首先要理解幾個概念 檔案 按一定規則儲存在磁碟上的資料集合。檔名 能唯一標識某個磁碟檔案的字串。形式 碟符 路徑 檔名.副檔名 二進位制檔案 資料以二進位制形式在儲存在磁碟上。裝置檔案 輸入 輸出裝置 標準輸入檔案 鍵盤 標準輸出檔案 標準錯誤輸出檔案 顯示器 檔案型指標 c語言是通過名為fil...

C語言檔案操作

1,兩種檔案訪問方式 輸入,輸出方式 順序訪問 直接訪問 2,資料的兩種存放形式 文字檔案 二進位制檔案 3.檔案指標 定義檔案型別指標變數的一般形式 file 指標變數名 例如 file fp1,fp2 4.開啟檔案 在使用檔案之前,需開啟檔案.在c裡使用fopen函式開啟檔案.格式為 fopen...