fseek函式與ftell函式聯絡與區別
fseek函式是 用來設定檔案的當前讀寫位置.
函式原型: int fseek(FILE *fp,long offset,int origin);
函式功能:把fp的檔案讀寫位置指標移到指定的位置.
fseek(fp,20,SEEK_SET); 意思是把fp檔案讀寫位置指標從檔案開始後移20個位元組.
ftell函式是用來獲取檔案的當前讀寫位置;
函式原型: long ftell(FILE *fp)
函式功能:得到流式檔案的當前讀寫位置,其返回值是當前讀寫位置偏離檔案頭部的位元組數.
ban=ftell(fp); 是獲取fp指定的檔案的當前讀寫位置,並將其值傳給變數ban.
fseek函式與ftell函式綜合應用:
分析:可以用fseek函式把位置指標移到檔案尾,再用ftell函式獲得這時位置指標距檔案頭的位元組數,這個位元組數就是檔案的長度.
#i nclude <stdio.h>
main()
{
FILE *fp;
char filename[80];
long length;
printf("輸入檔名:");
gets(filename);
//以二進位制讀檔案方式開啟檔案
fp=fopen(filename,"rb");
if(fp==NULL)
printf("file not found!\n");
else
{
//把檔案的位置指標移到檔案尾
fseek(fp,OL,SEEK_END);
//獲取檔案長度;
length=ftell(fp);
printf("該檔案的長度為%1d位元組\n",length);
fclose(fp);
}
}