int fseek( FILE *stream, long offset, int origin ); 第一個參數stream為文件指針,offset為偏移,比如你要從文件的第10000個字節開始讀取的話,offset就應該為10000,origin 為標志是從文件開始還是末尾。 origin 的取值: SEEK_CUR Current position of file pointer SEEK_END End of file SEEK_SET Beginning of file那么fseek(fp,-size,1)中-size和1是否應理解為,從文件倒說第一個文件開始讀取,可是感覺好別扭,誰能告訴我啊 ~~謝謝
2 回答

蝴蝶刀刀
TA貢獻1801條經驗 獲得超8個贊
fseek最后一個參數最好不要直接指定一個數值,比如1,
要使用SEEK_CUR,SEEK_END,SEEK_SET
第二個參數表示相對于第三個參數的偏移,整數表示正向偏移,負數表示負向偏移,比如
fseek(fp,-size,SEEK_CUR);
從當前位置向文件后方(比如文件有123三個數字,那么2在三的后方,3在2的前方)
fseek(fp,size,SEEK_SET);
從文件開始位置向前移動size
這里默認size是正數

藍山帝景
TA貢獻1843條經驗 獲得超7個贊
是的
int
fseek(FILE
*stream,
long
offset,
int
fromwhere);函數設置文件指針stream的位置。
如果執行成功,stream將指向以fromwhere為基準,偏移offset(指針偏移量)個字節的位置,函數返回0。如果執行失敗(比如offset超過文件自身大小),則不改變stream指向的位置,函數返回一個非0值。
實驗得出,超出文件末尾位置,還是返回0。往回偏移超出首位置,返回-1,且指向一個-1的位置,請小心使用。
fseek函數和lseek函數類似,但lseek返回的是一個off_t數值,而fseek返回的是一個整型。
- 2 回答
- 0 關注
- 138 瀏覽
添加回答
舉報
0/150
提交
取消