C語言ftell()函式:獲取檔案讀寫指標的當前位置
標頭檔案:#include <stdio.h>
ftell() 函式用來獲取檔案讀寫指標的當前位置,其原型為:
long ftell(FILE * stream);
【引數】stream 為已開啟的檔案指標。
【返回值】成功則返回當前的讀寫位置,失敗返回 -1。
對於二進位制檔案,則返回從檔案開頭到結尾的位元組數。
對於文字檔案,返回的數值可能沒有實際意義,但仍然可以用來儲存當前的讀寫位置,供 fseek() 函式使用
在隨機方式存取檔案時,由於檔案位置頻繁的前後移動,程式不容易確定檔案的當前位置。使用fseek函式後再呼叫函式ftell()就能非常容易地確定檔案的當前位置。
ftell() 經常和 fseek() 一起使用。例如,利用 ftell() 可以方便地獲取一個檔案的長:
首先將檔案的位置指標移到檔案的末尾,然後呼叫函式 ftell() 獲得當前位置相對於檔案首的位移,該位移值等於檔案所含位元組數。
【例項】在讀取檔案中的字元時,不斷讀取檔案讀寫指標的位置。
執行結果:
8
13
22
24
程式首先是新建一個檔案,然後使用 fprintf() 函式寫入一些資料,再使用 fseek() 函式把檔案的讀取寫指標定位到檔案的開頭,開始讀取檔案資料,此時檔案的讀/寫指標會不斷地向後移動,程式每讀取一次資料就獲取一次檔案指標的位置並輸出。
ftell() 函式用來獲取檔案讀寫指標的當前位置,其原型為:
long ftell(FILE * stream);
【引數】stream 為已開啟的檔案指標。
【返回值】成功則返回當前的讀寫位置,失敗返回 -1。
對於二進位制檔案,則返回從檔案開頭到結尾的位元組數。
對於文字檔案,返回的數值可能沒有實際意義,但仍然可以用來儲存當前的讀寫位置,供 fseek() 函式使用
在隨機方式存取檔案時,由於檔案位置頻繁的前後移動,程式不容易確定檔案的當前位置。使用fseek函式後再呼叫函式ftell()就能非常容易地確定檔案的當前位置。
ftell() 經常和 fseek() 一起使用。例如,利用 ftell() 可以方便地獲取一個檔案的長:
- FILE *fp = fopen("demo.txt","rb");
- fseek(fp, 0L, SEEK_END);
- len =ftell(fp)+1;
【例項】在讀取檔案中的字元時,不斷讀取檔案讀寫指標的位置。
- #include<iostream.h>
- #include<stdio.h>
- void main(void)
- {
- FILE* stream;
- long l;
- float fp;
- char s[81];
- char c;
- stream = fopen("fscanf.txt","w+"); // 開啟
- if(stream == NULL) // 開啟檔案失敗
- {
- printf("the file is opeaned error!\n");
- }
- else //輸出資訊
- {
- fprintf(stream,"%s %ld %f %c","a_string",6500,3.1415,'x');
- fseek(stream,0L,SEEK_SET); // 定位檔案讀寫指標
- fscanf(stream,"%s",s);
- printf("%ld\n",ftell(stream));
- fscanf(stream,"%ld",&l);
- printf("%ld\n",ftell(stream));
- fscanf(stream,"%f",&fp);
- printf("%ld\n",ftell(stream));
- fscanf(stream," %c",&c);
- printf("%ld\n",ftell(stream));
- fclose(stream); // 關閉
- }
- }
8
13
22
24
程式首先是新建一個檔案,然後使用 fprintf() 函式寫入一些資料,再使用 fseek() 函式把檔案的讀取寫指標定位到檔案的開頭,開始讀取檔案資料,此時檔案的讀/寫指標會不斷地向後移動,程式每讀取一次資料就獲取一次檔案指標的位置並輸出。
相關文章
- C語言lseek()函式:移動檔案的讀寫位置C語言函式
- c語言函式指標的定義C語言函式指標
- C語言fgetc()函式:讀檔案函式(由檔案中讀取一個字元)C語言函式字元
- C語言putc()函式:寫檔案函式(將一指定字元寫入檔案中)C語言函式字元
- C語言fputc()函式:寫檔案函式(將一指定字元寫入檔案流中)C語言函式字元
- C語言-檔案讀寫C語言
- viewpager獲取當前view報空指標的解決方法Viewpager指標
- 獲取系統語言/當前 App支援語言APP
- C語言/C++讀取檔案資訊C語言C++
- C語言 函式指標C語言函式指標
- C語言rewind()函式:將檔案指標重新指向檔案開頭C語言函式指標
- C語言getgroups()函式:獲取組程式碼函式C語言函式
- 微信小程式獲取當前位置微信小程式
- C語言讀取寫入CSV檔案 [一]基礎篇C語言
- C語言fopen()函式:開啟一個檔案並返回檔案指標C語言函式指標
- C++ 返回函式指標的函式C++函式指標
- c語言獲取陣列長度的函式C語言陣列函式
- C語言chdir()函式:改變當前的工作目錄C語言函式
- Android中獲取當前位置資訊Android
- 點選按鈕獲取當前位置
- IOS獲取當前地理位置文字iOS
- C語言函式指標基礎C語言函式指標
- C/C++中函式指標的含義C++函式指標
- C語言setpwent()函式:從頭讀取密碼檔案中的賬號資料C語言函式密碼
- C語言解讀assert函式C語言函式
- JavaScript獲取當前li元素的索引位置JavaScript索引
- C語言unlink()函式:刪除檔案C語言函式
- C語言函式指標與回撥用函式C語言函式指標
- C語言:陣列和指標的區別C語言陣列指標
- C語言第四篇:指標的辨析C語言指標
- 各種語言裡獲取當前模組的方法:ABAP,ABSL,C,nodejsNodeJS
- C/C++——指向函式的指標和指向函式的指標的陣列C++函式指標陣列
- 指令碼:獲取當前的User Trace檔案指令碼
- Clion中C++使用當前目錄讀取檔案失敗C++
- python高階函式和C語言函式指標Python函式C語言指標
- C語言程式設計獲取PE檔案DOS頭C語言程式設計
- 直播app原始碼,uniapp獲取當前位置APP原始碼
- C語言link()函式:建立檔案連線C語言函式