日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言返回文件大小的功能(fseek和ftell的使用)

發布時間:2023/12/2 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言返回文件大小的功能(fseek和ftell的使用) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


需求:有時候讀文件時,需要知道文件的字符總的個數,可能是為了提前定義緩沖區大小或者拷貝文件等等。也可以用于動態創建數組。
在進行這兩個問題之前,先來了解一下兩個函數,這兩個函數配合就能夠實現計算大小的功能。


函數 一:fseek

stdio中的庫函數:

函數原型:int fseek(FILE *stream, long int?offset, int whence);

功能:設定文件指針的位置
參數:
stream: 需要讀取的文件流。
whence:文件源指針的位置,值可以是這三個中的一個:SEEK_SET、SEEK_CUR、SEEK_END分別表示文件開頭位置,文件當前位置,文件結尾位置。
offset:表示以 whence為基點的偏移量的大小。

所以這個函數的整體功能是:從任意位置比如最常用的SEEK_SET、SEEK_CUR、SEEK_END,移動文件指針,移動的大小為offset。函數執行之后,文件指針就移動到了whence + offset位置處。

返回值:執行成功返回0,執行失敗返回非零。


函數二:ftell

stdio中的庫函數:

函數原型: long int ftell(FILE *stream);

功能:當前文件讀寫位置。

返回值:是當前讀寫位置偏離文件頭部的字節數.

所以由fseek設定文件指針的位置,再由ftell計算從文件開頭到fseek獲取的位置的字節數。


實例代碼如下:

include <stdio.h> #include <stdlib.h>int main() { FILE * fp; fp = fopen("addoverflowDemo.c","r"); if(fp == NULL){return -1; }//int fseek(FILE *stream, long int offset, int whence); 獲取起始位置 fseek(fp,0,SEEK_END); //long int ftell(FILE *stream);計算開頭到fseek位置的字符數 int value; value = ftell(fp); printf("字符數為:%dn",value);return EXIT_SUCCESS; }



創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的C语言返回文件大小的功能(fseek和ftell的使用)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。