C語言檔案

2021-10-24 00:24:46 字數 2952 閱讀 9129

檔案是指儲存在外部儲存介質(外存)上資料的集合

作業系統是以檔案為單位對資料進行管理的

c語言將每乙個與主機相連的輸入或輸出裝置都看作是乙個檔案

檔案可以長期儲存,實現資料共享

在程式執行時由程式在外存上建立或開啟乙個檔案,通過寫操作將資料存入該檔案

由程式開啟外存上的某個已有檔案,並通過讀操作將檔案的資料讀入記憶體供程式使用

檔案路徑

d:

/home/sunner/main.c

d:\\home\\sunner\\main.c

按照編碼形式分為兩類:文字(ascii)檔案,二進位制檔案

結構體型別file:每乙個被使用的檔案都在記憶體中開闢乙個區域,用來存放檔案的有關資訊。這些資訊儲存在乙個結構體型別的變數中。對檔案操作的相關資訊的結構體型別由系統定義為「file」,包含在stdio.**件中:

typedef

struct

file;

定義檔案指標變數:file *變數名;

例如:file *fp;

fp是乙個指向file結構體型別的指標變數。

可以使fp只想某乙個具有檔案的結構體變數,通過讀取該結構體變數中的有關資訊來實現對檔案的訪問和操作

1.目的:對檔案讀寫之前開啟檔案,建立程式與檔案的聯絡

2.函式:file *fopen(const char *filename,const char *mode);

1.讀檔案

指定的檔案必須存在,否則出錯;

2.寫檔案(指定的檔案可以存在,也可以不存在)

(1)以「w」方式寫

if 該檔案已經存在

原檔案將被刪去然後重新建立;

else

按指定的名字新建乙個檔案;

(2)以「a」方式寫

if 該檔案已經存在

寫入的資料附加在原資料後邊;

else

按指定的名字新建乙個檔案(與「w」相同);

3.檔案同時讀和寫:

使用」r+「、」w+「、」a+「開啟檔案

函式:int flose(file *fp);

功能:使用檔案之後關閉檔案,使檔案指標變數不再指向該檔案

返回值:檔案關閉成功返回0,若失敗返回非零值

函式:int fscanf(file *fp,const char *format,...);

格式:int fsanf (檔案指標,格式字串,輸出物件表列);

功能:將指定磁碟檔案格式化賦值給指定物件

例如:fscanf(fp,"%d,%f",&i,&a);//從fp所指向的檔案中,取出資料賦給i和a

函式:int fprintf(file *fp,const char *format,...);

格式:int fprintf(檔案指標,格式字串,輸出物件表列);

功能:將指標物件格式化輸出到指定磁碟檔案上

例如:fprintf(fp,"%d,%f",a,b);/將a和b的值按指定格式寫入fp所指向的檔案

函式:int fgetc(file *fp) ;

功能:從指定檔案讀出乙個字元。

返回值:若讀成功,函式返回該字元,若讀到檔案尾結束符時,函式返回乙個檔案結束標誌eof (值為-1)。

例如:char ch=fgetc (fp) ;

函式:int fputc (int ch, file *fp) ;

功能:把一 個字元寫到fp所指向的檔案中。

返回值:若寫成功,函式返回該字元,否則返回檔案結束標誌eof (值為-1)

例如:char ch=『a』 ; fputc(ch, fp) ;

函式:char *fgets (char *str,int n,eile *fp);

功能:從fp所指的檔案中讀取字串並在字串末尾新增『\0』 ,然後存入str,最多讀n-1個字元。

返回值:當讀到回車換行符、檔案末尾或讀滿n-1個字元時,函式返回該字串的首位址。

例如:char s[100]; fgets(s, 100, fp) ;

函式:int fputs (const char *s, file *fp) ;力能:將字串寫入檔案中。

返回值:若出現寫入錯誤,則返回eof, 否則返回乙個非負數。

例如:char *str=「abcd」; fputs(str, fp);

函式:unsigned fread (void *buffer, unsigned size, unsigned count, file *fp) ;

功能:從fp所指的檔案中讀取資料塊並儲存到buffer指向的記憶體中,

返回值:返回實際讀到的資料塊個數

●buffer是待讀入資料塊的起始位址

●size 是每個資料塊的大小(待讀入的每個資料塊的位元組數)

●count: 是最多允許讀取的資料塊個數(每個資料塊size個位元組)

例如:int a[3]; fread(a, 4,3, fp);

函式:unsigned fwrite (const void *buffer , unsigned size, unsigned count, file *fp);

功能:將buffer指向的記憶體中的資料塊寫入fp所指的檔案

返回值:返回實際讀到的資料塊個數

例如:double b[3]; .... fread(b, 8,3, fp) ;

fread()、fwrite()用於讀寫資料塊(可用來讀寫陣列、結構變數的值等),多用於讀寫二進位制檔案

c語言 檔案

1.檔案指標 在 語言中用乙個指標變數指向乙個檔案,這個指標稱為檔案指標。通過檔案指標就可對它所指的檔案進行各種操作。定義說明檔案指標的一般形式為 file 指標變數識別符號 例如 file fp 2.檔案的開啟 fopen函式用來開啟乙個檔案,其呼叫的一般形式為 檔案指標名 fopen 檔名,使用...

C語言 檔案

實現書上的例項 有乙個磁碟檔案,先將它顯示到螢幕上,在複製到另乙個檔案中,用c語言實現。如下 include main error c2660 fputc function does not take 1 parameters 出現這個錯誤,說明函式的呼叫形式有問題 編譯時,系統有點奔潰.自認為沒有...

C語言 檔案

檔案 存在硬碟u盤 外存中 外部介質 的資料的集合 輸入輸出 資料流,資訊從源到端的流動 stream 磁碟 程式 讀檔案 站在程式的角度 程式 磁碟 寫檔案 linux 萬物皆為檔案 包括鍵盤 顯示器 檔案總路徑 d cc temp file1.dat 檔案路徑 d cc temp 絕對路徑 相對...