定義檔案指標變數的一般形式為:
file *
檔案結構指標變數名
例如:file *fp;
注意:只有通過檔案指標,才能呼叫相應的檔案。
常用以下方式開啟檔案:
file *fp;
if ((fp=fopen("file1", "r")) ==null )
例如:
fclose(fp);
fclose函式也帶回乙個返回值,當順利關閉檔案時,返回
0,否則返回
eof(-1)
。1、
fputc
函式和fgetc
函式(putc
函式和getc
函式)
(1)、
fputc
函式把字元寫入到磁碟檔案,一般的呼叫方式為:
fputc(ch,fp)
(2)、
fgetc()
函式從指定檔案讀入乙個字元。fgetc
函式的呼叫形式為:
ch=fgetc(fp);
ch = fgetc(fp);
while(ch != eof)
從二進位制檔案中順序讀入檔案內容,可以用:
while(!feof(fp))
f
read函式和
fwrite
函式
fread函式和
fwrite
函式用來讀寫乙個資料塊。它們的一般呼叫方式為:
fread(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
其中:buffer
:是乙個指標。對
fread
來說,它是讀入資料的存放位址。對
fwrite
來說,是要輸出資料的位址。
size:要讀寫的位元組數。
count:要進行讀寫多少個
size
位元組的資料項。
例:如果有如下的結構體型別:
struct student_typestu[40];
for(i=0; i<40; i++) /* 每次寫乙個學生 */
fwrite(&stu[i], sizeof(struct student_type), 1, fp);
//或者只寫一次
fwrite(stu, sizeof(struct student_type), 40, fp);
fprintf(檔案指標,格式字串,輸出列表
);fscanf (檔案指標,格式字串,輸入列表
);例如:
fprintf(fp,"%d,%6.2f",i,t);
它的作用是將整型變數i
和實型變數
t的值按%d和
%6.2f
的格式輸出到
fp所指向的檔案中。如果
i=3,t=4.5,
則輸出到磁碟檔案上的是以下字串:
3,4.50
同樣,用fscanf
函式可以從磁碟檔案上讀入
ascii
字元:
fscanf(fp,"%d,%f",&i,&t);
磁碟檔案上如果有以下字元:3
,4.5
則將磁碟檔案的資料
3送給變數i,
4.5送給變數t。
最好不用fprintf
和fscanf
函式,而用
fread
和fwrite
函式。其他讀寫函式
1、
putw
和getw
函式
putw和
getw
函式用來對磁碟檔案讀寫乙個字(整數
)。例如:
putw(10,fp); /* 整數10寫入檔案fp */
i=getw(fp); /* 從檔案fp讀乙個整數給變數i */
2、
fgets
和fputs
函式
fgets函式的作用是從指定檔案讀入乙個字串。例如:
fgets(str, n,fp) /* 從檔案fp讀n-1個位元組到str,str最後乙個位元組加'\0'*/
fputs函式的作用是向指定的檔案輸出乙個字串。例如:
fputs(str,fp) /* 把字串str寫入fp */
1、
rewind
函式
一般的使用形式為:
rewind(fp);
作用:使檔案
fp的位置指標指向檔案開始。
2、
fseek
函式和隨機讀寫
fssek (檔案型別指標
,位移量
,起始點
);功能:把檔案的位置指標從起始點開始,移動指定位移量的位元組數。成功返回0
,失敗返回非0。
3、
ftell
函式
例如:
i=ftell(fp);
if(i==-1l) printf("error\n");
c 標準提供一些函式用來檢查輸入輸出函式呼叫中的錯誤。
1、
ferror
函式
在檔案操作時,如果出錯,除了操作函式的返回值有所反應外(如fopen()
函式返回
null
),還可以用
ferror
函式獲得是否出錯。它的一般呼叫形式為:
ferror(fp)
;否則返回非0。
2、
clearerr
函式
clearerr函式的作用是使檔案錯誤標誌和檔案結束標誌置為
0。 檔案操作出現錯誤後,
ferror(fp)
函式值為乙個非
0值,該錯誤資訊將一直保留在系統中,在呼叫
clearerr(fp)
函式後,
ferror(fp)
函式值變成0。
常用的緩衝檔案系統函式
分類 函式名
功能 開啟檔案
fopen()
開啟檔案。
關閉檔案
fclose()
關閉檔案。
檔案定位
fseek()
rewind()
ftell()
改變檔案位置指標位置
使檔案位置指標重新置於檔案開頭
返回檔案位置指標的當前值
檔案讀寫
fgetc(),getc()
fputc(),putc()
fgets()
fputs()
getw()
putw()
fread()
fwrite()
fscanf()
fprintf()
從指定檔案取得乙個字元。
把字元輸出到指定檔案。
從指定檔案讀取字串。
把字串輸出到指定檔案。
從指定檔案讀取乙個字(int
型)。 把乙個字(int
型)輸出到指定檔案。
從指定檔案中讀取資料項。
把資料項寫到指定檔案。
從指定檔案按格式輸入資料。
按指定格式將資料寫到指定檔案中。
檔案狀態
feof()
ferror()
clearerr()
若到檔案末尾,函式值為「真」
(非0)。 若對檔案操作出錯,函式值為「真」
(非0)。 使ferror
和feof
函式值置零。
C語言 檔案的輸入輸出
檔案的輸入輸出函式分為兩大類 1.有緩衝區的輸入輸出 buffered i o 資料先寫到緩衝區,滿了再寫入檔案 2.無緩衝區的輸入輸出 unbuffered file i o 直接操作檔案 有緩衝區的輸入輸出函式,含於stdio.h fopen 開啟乙個檔案 fclose 關閉乙個檔案 putc ...
C語言 檔案的輸入輸出
檔案的輸入輸出函式分為兩大類 1.有緩衝區的輸入輸出 buffered i o 資料先寫到緩衝區,滿了再寫入檔案 2.無緩衝區的輸入輸出 unbuffered file i o 直接操作檔案 有緩衝區的輸入輸出函式,含於stdio.h fopen 開啟乙個檔案 fclose 關閉乙個檔案 putc ...
C語言檔案輸入輸出總結
檔案輸入輸出 1 fopen include file fopen const char fname,const char mode mode方式 r 開啟乙個檔案,可以讀取檔案。w 開啟乙個檔案,可以寫入檔案,先將檔案的長度截為零。如果該檔案不存在則先建立之。a 開啟乙個檔案,可以寫入檔案,向已有...