C語言檔案操作

2021-04-21 02:21:20 字數 2582 閱讀 4708

1.    首先要理解幾個概念:

檔案: 按一定規則儲存在磁碟上的資料集合。

檔名: 能唯一標識某個磁碟檔案的字串。形式: 碟符:/ 路徑 / 檔名.副檔名

二進位制檔案:資料以二進位制形式在儲存在磁碟上。

裝置檔案:輸入/輸出裝置

標準輸入檔案:鍵盤

標準輸出檔案/標準錯誤輸出檔案:顯示器

檔案型指標:c語言是通過名為file的結構型指標來管理檔案讀寫的。file *《變數名》

檔案的開啟和關閉 :檔案操作先建立檔案與檔案指標之間的關係,接著進行檔案的讀與寫。建立檔案與檔案指標之間的聯絡的過程是檔案的開啟。終止這種聯絡就是檔案的關閉。

file結構:定義在〈stdio.h〉中。形式如下:

typedef struct

int  _fd;   /*檔案代號*/

int  _cleft;       /* 檔案緩衝區所剩位元組數*/

int  _mode;    /* 檔案使用模式*/

char  *buff;    /*  檔案緩衝區首位址  */

}file;

2. 主要操作函式用相應的使用

1) 檔案的開啟與關閉:

#include

file *fp;

fp = fopen(char* filename,  char*  made);

if(fp == null)

exit(0);

fclose(fp)

mode和種類有:

r : 開啟乙個文字檔案,供讀取資料, 檔案不存在,則返回null

w : 建立乙個供寫入的文字檔案. 廢棄原有內容

a: 開啟或建立乙個把資料追加到檔案尾的文字檔案

r+: 更新資料

w+ : 更新資料,廢棄原有內容

a+ : 更新資料, 寫入的資料追加到檔案尾.

二進位制在後面加"b"

標準輸入/輸出檔案的檔案型指標:  stdin, stdout, stderr

2)   檔案的讀與寫:

把乙個字元寫入檔案, 或從檔案中讀取乙個字元:  檔案內部指標自動移向下一位可讀寫的位置

int fputc(char ch, file *fp); //成功返回寫入的字元, 失敗返回eof

int fgetc( file *fp)    //成功則返回寫入的字元

把一行資料寫入檔案, 或讀取一行資料:

int  fputs(char *str, file *fp)     //成功返回0

char *  fgets(char *str, int n, file *fp) ; // 讀取n-1 個字元,第n個字元補'/0' ,成功返回讀取的字串。

把指定位元組數的若干資料寫入檔案, 或讀出檔案.

int fwrite(char * buf, unsigned size, unsigned n, file *fp); size 每個資料的位元組數,  n 個資料. 成功返回寫入字元的個數。

int fread(char *buf, unsigned size, unsigned n, file *fp);   成功返回讀取字元的個數。

把指定格式的資料寫入檔案, 或讀取指定格式的資料

int fprintf(file *fp, char *format, e1,e2,......en);   成功返回寫入字元的個數

int fscanf(file *fp, char *format, e1,e2,......en);  成功返回讀取字元的個數

3) 檔案位置的確定與指標管理.

檔案尾的測試:  int feof(file *fp); //當前已到達檔案尾返回非0, 否則返回0

不同的計算機系統以不同的鍵盤組合鍵形成檔案的結束符. ibm pc及其相容機是+ z

把檔案內部指標重新定位到檔案的起始位置     int rewind(file *fp);

把檔案內部指標定位到指定的位置:   int fseek(file *fp, long offset, int from);  //成功返回0

from 是定位的起始點.

seek_set    0    從檔案頭開始

seek_cur    1    從檔案內部指標當前位置開始

seek_end    2   從檔案尾開始

offset 是以from 為起始點的依稀位元組數,大於0表示向檔案尾方向, 0 不移動,

檔案操作出錯測式   int ferror(file *fp); 

用於對由fp指向的檔案最近一次操作進行正確性測試. 出錯返回非0,還沒返回0

4)  檔案的刪除

int remove(char * filename);

3.  一些以前我沒想到的知識點.

char ch;

ch = getchar ()  功能等價於 ch = fgetc(stdin)  功能等價於 scanf("%c",ch)   功能等價於 fscanf(stdin, "%c",ch)

putchar(ch)  功能等價於 printf("%c",ch)   功能等價於 fputc(stdout)   功能等價於 fprintf(stdout, "%c", ch)

注意 : 這些函式存在的一些細微的差別。注意它們的返回值的不同。

c語言檔案操作

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

C語言檔案操作

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

C 語言檔案操作

學 c以來都好幾年了,今天突然發現 c語言的檔案操作不會寫了,今天晚上睡不著,熬夜把檔案操作在複習一遍,重新大概總結一下 1 檔案的開啟 fopen 函式 fopen 函式來實現開啟檔案 fopen 函式呼叫方式通常為 file fp fp fopen 檔名,使用檔案方式 例如 fp fopen a...