檔案指標偏移的相關函式(rewind ftell fseek)
阿新 • • 發佈:2019-01-10
#include "stdafx.h" #if 0 ----rewind void rewind ( FILE * stream ); 函式功能:將檔案指標重新指向一個流的開頭。 如果一個檔案具有讀寫屬性,當我們寫完檔案,需要讀的時候, 此時會遇到檔案結尾現象。此時就需要 rewind ----ftell long ftell ( FILE * stream ); 函式功能:得到流式檔案的當前讀寫位置, 其返回值是當前讀寫 位置偏離檔案頭部的位元組數 返回值:成功,返回當前讀寫位置偏離檔案頭部的位元組數。 失敗,返回 - 1 ----fseek int fseek ( FILE * stream, long offset, int origin ); stream:檔案控制代碼 offset:偏移量 origin:偏移起始位置 函式功能:偏移檔案指標。 返回值:成功返回 0,失敗返回-1 常見的起始位置有巨集定義: #define SEEK_CUR 1 當前位置 #define SEEK_END 2 檔案結尾 #define SEEK_SET 0 檔案開頭 fseek(fp,100L,0); 把 fp 指標移動到離檔案開頭 100 位元組處; fseek(fp, 100L, 1); 把 fp 指標移動到離檔案當前位置 100 位元組處; fseek(fp, 100L, 2); 把 fp 指標退回到離檔案結尾 100 位元組處。 #endif int _tmain(int argc, _TCHAR* argv[]) { FILE * fp = fopen("data.txt", "w+"); char ch; for (ch = 'a'; ch <= 'z'; ch++) { fputc(ch,fp); } //rewind(fp); fseek(fp, 0, SEEK_SET); int len = ftell(fp); //返回當前位置偏離頭部的位元組數 printf("len=%d\n", len); fclose(fp); return 0; }