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.
 
$

上一頁 11.7.14 fwrite()
回 C 速查手冊 - 標準程式庫分類索引
下一頁 11.7.16 ftell()
回 C 速查手冊 - 標準程式庫導覽
回 C 速查手冊首頁
回 C 教材首頁
回程式語言教材首頁