三、順序讀寫資料檔案
四、用格式化的方式讀寫文字檔案
五、用二進位制方式向檔案讀寫一組資料
六.隨機讀寫資料檔案
七、檔案讀寫的出錯檢測
c語言檔案詳解
一、定義乙個指向檔案(file型別資料)的指標
指向檔案的指標變數並不是指向外部介質上的資料檔案的開頭,而是指向記憶體中的檔案資訊區的開頭。二、開啟關閉檔案
1.打 開檔案fopen
一般都指定乙個指標變數指向該檔案,也就是建立起指標變數與檔案之間的聯絡。
file *fp;
//定義乙個指向檔案的指標變數fp
fp=fopen("a"
,"r");
//以唯讀方式開啟乙個叫做a的檔案
if
(fp=
fopen
("file1"
,"r")==
null
)//如果開啟出錯
fopen要點:(1)需要開啟檔案的名字,如上面的a
(2) 使用檔案的方式(「讀」還是「寫」等)
(3)乙個檔案指標,用來標識該檔案
2.關閉檔案fclose
「關閉」,就是使檔案指標變數不再指向該檔案。
fclose
(fp)
;
fclose成功地執行了關閉操作,則返回值為0;否則返回eof(-1)。在使用完乙個檔案後應該關閉它,以防止它再被誤用三、順序讀寫資料檔案如果不關閉檔案就結束程式執行將可能會丟失資料。
1.從檔案讀乙個字元fgetc
2.向檔案寫乙個字元fputcfgetc
(fp); //成功,返回所讀字元;失敗,返回,返回檔案結束標誌:eof(即-1)
示例:fputc
(ch,fp); //成功,返回輸出字元;失敗,返回eof(即-1)
1.從鍵盤輸入一些字元,並逐個把它們送到磁碟上去,直到使用者輸入乙個「!」為止
2.將乙個磁碟檔案中的資訊複製到另乙個磁碟檔案中。要求將建立的file1.dat檔案中的內容複製到另乙個磁碟檔案file2.dat中。
3.從檔案讀字串fgets
從fp指向的檔案讀入乙個長度為(n-1)的字串,存放到字元陣列str中
4.從檔案寫字串fputsfgets
(str,n,fp)
;//讀成功,返回位址str,失敗則返回null
//函式原型:
char
*fgets
(char
*str,
int n, file*fp)
;
假定str是乙個指向字串的指標,我們要把他寫入fp指向的檔案中
四、用格式化的方式讀寫文字檔案fputs
(str,fp)
;//輸出成功,返回0;否則返回非0值
//函式原型:
int fputs (
char
*str, file *fp)
;
1.格式化寫函式fprintf
栗子:將int型變數i和float型變數f的值按%4d和%.2f的格式輸出到fp指向的檔案中
1.格式化讀函式fscanffprintf (fp,″%
4d,%
.2f″,i,f)
;
栗子:檔案上有字元「1,2.2」,從中讀取整數2送給整型變數i,讀取實數2.2送給float型變數f
fscanf (fp,″%d,
%f″,
&i,&f)
;
它們與printf函式和scanf函式相似,只是fprintf和fscanf函式的讀寫物件不是終端而是檔案。函式區別就是前面要加檔案指標五、用二進位制方式向檔案讀寫一組資料1.寫函式fwrite
2.讀函式freadfwrite
(buffer, size, count, fp)
;
栗子:從fp所指向的檔案讀入10個4個位元組的資料,儲存到陣列f中fread
(buffer, size, count, fp)
;
示例:fread
(f,4,10
,fp)
;//從fp所指向的檔案讀入10個4個位元組的資料,儲存到陣列f中
使用fread,fwrite讀寫檔案
六.隨機讀寫資料檔案
不了解檔案位置等概念的朋友請看:c語言檔案:檔案位置標記及其定位
1.使檔案位置標記指向檔案開頭rewind
rewind(檔案指標);
rewind函式的作用是使檔案位置標記重新返回檔案的開頭,此函式沒有返回值rewind
(fp)
;
2.改變檔案位置標記fseek
fseek(檔案型別指標, 位移量, 起始點);
3.測定檔案位置標記的當前位置ftellfseek (fp,
50l,0)
;//l代表長整型,將檔案位置標記向前移到離檔案開頭50個位元組處
fseek (fp,
100l,1
);//將檔案位置標記向前移到離當前位置100個位元組處
fseek (fp,
-10l,2
);//將檔案位置標記從檔案末尾處向後退10個位元組
七、檔案讀寫的出錯檢測t=
ftell
(fp)
;//變數存放檔案當前位置
if(t==-1l
)printf
(″error\n″)
;//如果呼叫函式時出錯,輸出″error″
1.出錯檢測 ferror(fp);
在呼叫各種輸入輸出函式(如putc,getc,fread,fwrite等)時,如果出現錯誤,除了函式返回值有所反映外,還可以用ferror函式檢查。
2.清除錯誤標誌:clearerr(fp);ferror函式值為乙個非零值,即其他函式出錯時。應該立即呼叫clearerr(fp),使ferror(fp)的值變成0,以便再進行下一次的檢測。
c語言檔案操作詳解
什麼是檔案?磁碟上的檔案是檔案,但是在程式設計中,我們一般談的檔案有兩種 程式檔案,資料檔案。在這裡插入 片1 程式檔案 包括源程式檔案 字尾為.c 目標檔案 windows環境字尾為.obj 可執行程式 windows環境字尾為.exe 2 資料檔案 檔案的內容不一定是程式,而是程式執行時讀寫的資...
檔案操作詳解(C語言)
二 檔名 三 檔案型別 四 檔案緩衝區 五 檔案指標 六 檔案的開啟和關閉 七 檔案的順序讀寫 八 檔案的隨機讀寫 九 檔案結束判定 磁碟上的檔案是檔案。但是在程式設計中,我們一般談的檔案有兩種 程式檔案 資料檔案。包括源程式檔案 字尾為.c 目標檔案 windows環境字尾為.obj 可執行程式 ...
C 檔案操作函式詳解
c 通過以下幾個類支援檔案的輸入輸出 1 ofstream 寫操作,輸出檔案類 2 ifstream 讀操作,輸入檔案類 3 fstream 可同時讀寫的檔案類。1.open函式 開啟檔案 函式原型 void open const char filename,int mode,int access ...