fseek()使用詳解

2021-08-15 13:37:19 字數 1995 閱讀 6885

在閱讀**時,遇到了很早之前用過的fseek(),很久沒有用了,有點陌生,寫出來以便下次查閱。

函式功能是把檔案指標指向檔案的開頭,需要包含標頭檔案stdio.h中

fseek

函式名:fseek

功能:重定位流上的檔案指標

用行業釋義法律:int fseek(file *流,長偏移,int fromwhere);

描述:函式設定檔案指標流的位置如果執行成功,流將指向以fromwhere為基準,偏移抵消個位元組的位置如果執行失敗(比如偏移量超過檔案自身大小),則不改變流指向的位置。

返回值:成功,返回0,否則返回其他值

fseek位置檔案位置指標,指向由流引用的檔案到由offset計算的位元組位置。

程式例:

[cpp]

檢視純

文字

#include

長檔案大小(

檔案*流);  

int

main(

void

)    

long

filesize(

file

*stream)  

int fseek( file *stream, long offset, int origin );

第乙個引數stream為檔案指標

第二個引數offset為偏移量,整數表示正向偏移,負數表示負向偏移

第三個引數origin設定從檔案的**開始偏移,可能取值為:seek_cur、 seek_end 或 seek_set

seek_set: 檔案開頭

seek_cur: 當前位置

seek_end: 檔案結尾

其中seek_set,seek_cur和seek_end和依次為0,1和2.

簡言之:

fseek(fp,100l,0);把fp指標移動到離檔案開頭100位元組處;

fseek(fp,100l,1);把fp指標移動到離檔案當前位置100位元組處;

fseek(fp,100l,2);把fp指標退回到離檔案結尾100位元組處。

使用例項:

[cpp]view plain

copy

#include 

#define n 5

typedef

struct

student  stu;  

void

fun(

char

*filename, stu n)  

void

main()  

, ,  

, ,  

};  

stu n=, ss[n];  

inti,j; 

file

*fp;  

fp = fopen("student.dat"

, "wb"

);  

fwrite(t, sizeof

(stu), n, fp);  

fclose(fp);  

fp = fopen("student.dat"

, "rb"

);  

fread(ss, sizeof

(stu), n, fp);  

fclose(fp);  

printf("\nthe original data :\n\n"

);  

for(j=0; j

fun(

「student.dat」

,n);  

printf(

「\ n修改後的資料:\ n \ n」

);  

fp = fopen(

「student.dat」

,  「rb」

);  

fread(ss, 

sizeof

(stu),n,fp);  

fclose(fp);  

for

(j = 0; j

fseek函式的使用

1 函式功能 用來讀寫乙個資料塊,2 函式定義 int fseek file stream,long offset,int origin 第乙個引數stream為檔案指標 第二個引數offset為偏移量,整數表示正向偏移,負數表示負向偏移 第三個引數origin設定從檔案的 開始偏移,可能取值為 s...

檔案操作 fseek

int fseek file stream,long offset,int fromwhere fseek 用於二進位制方式開啟的檔案,移動檔案讀寫指標位置.int fseek file stream,long offset,int origin 第乙個引數stream為檔案指標 第二個引數offs...

fseek 函式用法 08 12 23

fseek 函式 呼叫形式 include stdio.h fseek 檔案型別指標fp,位移量,起始點 函式功能 把與 fp有關的檔案位置指標放到乙個指定位置。其中,位移量 是long 型資料,它表示位置指標相對於 起始點 移動的位元組數。如果位移量是乙個正數,表示從 起始點 開始往檔案尾方向移動...