C 速查手冊
11.7.15 fseek()
stdio.h 的函數 (function) 可設定在檔案中存取的位置,共需三個參數 (parameter) ,第一個參數為指向結構 (structure) FILE 的指標 (pointer),第二個參數為位移字元量,第三個參數為位移的起算位址,可以是檔案開頭 SEEK_SET 、現在位置 SEEK_CUR 或檔案結尾 SEEK_END 。
假設相同路徑下有 oldname.txt ,內容為 She is 19 years old. 的文字,以下程式示範用 fseek() 移到第 10 字元的位置,然後讀取 20 個字元
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fPtr;
char s[20];
fPtr = fopen("oldname.txt", "r");
if (!fPtr) {
printf("檔案開啟失敗...\n");
exit(1);
}
fseek(fPtr, 10, SEEK_SET);
fread(s, sizeof(char), 20, fPtr);
fclose(fPtr);
printf("%s\n", s);
return 0;
}
/* 《程式語言教學誌》的範例程式
http://kaiching.org/
檔名:cfseek.c
功能:示範 stdio.h 中函數 cfseek.c 的使用
作者:張凱慶 */
編譯後執行,結果如下
$ gccc fseek.c |
$ a.out |
years old. |
$ |