1. 程式人生 > >fseek函式與ftell函式聯絡與區別

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);

      }

}