檔案是指儲存在外部儲存介質(外存)上資料的集合
作業系統是以檔案為單位對資料進行管理的
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 絕對路徑 相對...