溫馨提示×

c語言如何讀取指定位置

小億
280
2023-12-09 00:04:01
欄目: 編程語言

C語言中可以使用文件指針的定位函數(shù)來讀取指定位置的數(shù)據(jù)。具體步驟如下:

  1. 打開文件:使用函數(shù)fopen()打開要讀取的文件,指定文件路徑和打開模式。
FILE *fp;
fp = fopen("file.txt", "rb"); // 以二進制只讀方式打開文件
  1. 定位文件指針:使用函數(shù)fseek()將文件指針定位到指定位置。第一個參數(shù)為文件指針,第二個參數(shù)為偏移量,第三個參數(shù)為基準位置。
long offset = 10; // 偏移量為10個字節(jié)
int origin = SEEK_SET; // 以文件開頭作為基準位置
fseek(fp, offset, origin);
  1. 讀取數(shù)據(jù):使用函數(shù)fread()讀取指定位置的數(shù)據(jù)。第一個參數(shù)為數(shù)據(jù)存儲的地址,第二個參數(shù)為每個數(shù)據(jù)項的大小,第三個參數(shù)為數(shù)據(jù)項的個數(shù),第四個參數(shù)為文件指針。
char buffer[100]; // 存放讀取的數(shù)據(jù)
int size = sizeof(char); // 每個數(shù)據(jù)項的大小為1個字節(jié)
int count = 100; // 讀取100個數(shù)據(jù)項
fread(buffer, size, count, fp);
  1. 關閉文件:使用函數(shù)fclose()關閉文件。
fclose(fp);

完整示例代碼如下:

#include <stdio.h>

int main() {
    FILE *fp;
    fp = fopen("file.txt", "rb");
    if (fp == NULL) {
        printf("文件打開失敗\n");
        return 0;
    }

    long offset = 10;
    int origin = SEEK_SET;
    fseek(fp, offset, origin);

    char buffer[100];
    int size = sizeof(char);
    int count = 100;
    fread(buffer, size, count, fp);

    fclose(fp);

    printf("讀取的數(shù)據(jù):%s\n", buffer);

    return 0;
}

以上代碼會從文件的第11個字節(jié)開始讀取100個字節(jié)的數(shù)據(jù),并將結(jié)果打印出來。

0