文件指針操作

  • 三個函數(shù):

//移動文件指針到文件開始位置
void rewind(FILE *pf)


//獲取文件當(dāng)前指針距離文件開始位置的字節(jié)數(shù)
long ftell(FILE *pf)


//移動文件指針到指定位置
//WHENCE取值 // SEEK_SET :offset的取值是相對于文件開始的一個絕對值,必須為正數(shù)或者0 //SEEK_CUR : offset的取值是相對于當(dāng)前文件指針的一個相對值,可正可負 //SEEK_END: offset的取值是相對于文件結(jié)尾的一個值,為0或者為負數(shù)
int fseek(FILE *pf, long offset, int WHENCE)


  • 一個簡單的demo,應(yīng)用三個函數(shù),計算并顯示一個文件的長度

#include <stdio.h>
#include <stdlib.h>

long get_file_length(FILE * pf);
char * get_length_unit(long length);

int main(void){ char * path = "E:/test.txt"; FILE * pf = fopen(path, "r+"); if(pf == NULL){ perror("open file err"); return 0; } long length = get_file_length(pf); char * size = get_length_unit(length); printf("the file:%s 's length is %s\n",path, size); free(size); //釋放分配的內(nèi)存 fclose(pf); //關(guān)閉文件 getchar(); return 0; } // windows下?lián)Q行符占2個字節(jié), linux下?lián)Q行符占一個字節(jié) // windows下文件不需要結(jié)束符, linux下的文件會自動增加一個結(jié)束符 // 獲取文件長度 long get_file_length(FILE * pf){ fseek(pf, 0, SEEK_END); //移動文件指針到文件的結(jié)尾處 long retVal = ftell(pf); //獲取文件當(dāng)前指針距離文件開始處的字節(jié)數(shù),就是文件的長度 if(retVal < 0){ perror("calc file length err"); //如果讀取失敗,顯示錯誤信息 clearerr(pf); //清除錯誤信息以及相關(guān)指示器 } rewind(pf); //移動文件指針到文件的開始處 return retVal; //返回文件的長度 } // 根據(jù)文件的長度,顯示成b, kb, mb的單位形式 char * get_length_unit(long length){ char * retVal = malloc(30 * sizeof(char)); if(length <= 1024){ sprintf(retVal, "%ld%s", length, "b"); }else if(length <= 1024 * 1024){ sprintf(retVal, "%.2f%s", length * 1.0 / 1024, "kb"); }else{ sprintf(retVal, "%.2f%s", length * 1.0 / (1024 * 1024), "mb"); } return retVal; }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末杏节,一起剝皮案震驚了整個濱河市弃锐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌稽莉,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡慎颗,警方通過查閱死者的電腦和手機腹泌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進店門嘶卧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人凉袱,你說我怎么就攤上這事芥吟。” “怎么了专甩?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵钟鸵,是天一觀的道長。 經(jīng)常有香客問我涤躲,道長棺耍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任篓叶,我火速辦了婚禮烈掠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘缸托。我一直安慰自己左敌,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布俐镐。 她就那樣靜靜地躺著矫限,像睡著了一般。 火紅的嫁衣襯著肌膚如雪佩抹。 梳的紋絲不亂的頭發(fā)上叼风,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天,我揣著相機與錄音棍苹,去河邊找鬼无宿。 笑死,一個胖子當(dāng)著我的面吹牛枢里,可吹牛的內(nèi)容都是我干的孽鸡。 我是一名探鬼主播,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼栏豺,長吁一口氣:“原來是場噩夢啊……” “哼彬碱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起奥洼,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤巷疼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后灵奖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嚼沿,經(jīng)...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡估盘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了骡尽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忿檩。...
    茶點故事閱讀 40,021評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖爆阶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情沙咏,我是刑警寧澤辨图,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站肢藐,受9級特大地震影響故河,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜吆豹,卻給世界環(huán)境...
    茶點故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一鱼的、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧痘煤,春花似錦凑阶、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蘸拔,卻和暖如春师郑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背调窍。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工宝冕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人邓萨。 一個月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓地梨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親先誉。 傳聞我的和親對象是個殘疾皇子湿刽,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,974評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 主要使用的函數(shù)功能比較強悍的主要就是fseek()函數(shù)了int fseek(FILE * pf, long off...
    wangxn閱讀 217評論 0 0
  • C/C++輸入輸出流總結(jié) 前兩天寫C++實習(xí)作業(yè),突然發(fā)現(xiàn)I/O是那么的陌生褐耳,打了好長時間的文件都沒有打開诈闺,今天終...
    LuckTime閱讀 1,732評論 0 6
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法铃芦,內(nèi)部類的語法雅镊,繼承相關(guān)的語法襟雷,異常的語法,線程的語...
    子非魚_t_閱讀 31,639評論 18 399
  • 夏天是練習(xí)瑜伽的黃金時間仁烹,溫度自然高耸弄,身體容易熱起來,通過練習(xí)能量法和氣血法卓缰,會把體內(nèi)多少年深入骨髓的寒氣逼出來计呈。...
    寧武首席瑜伽師瑪麗閱讀 539評論 0 2
  • 親生母親給我灌下湯藥,逼我和傻子在一起征唬,就在我快要失守的時候捌显,傻子忽然暴斃被鬼附身,為保清白我和惡鬼做了交易总寒,從此...
    愛笑的南瓜閱讀 354評論 0 1