ftell函數和rwind函數詳解

      網友投稿 993 2022-05-28

      大家好,我是芒果,一名非科班的在校大學生。對C/C++、數據結構、Linux及MySql、算法等領域感興趣,喜歡將所學知識寫成博客記錄下來。 希望該文章對你有所幫助!如果有錯誤請大佬們指正!共同學習交流

      掘金LV3用戶 https://juejin.cn/user/1381426159953960

      ftell函數和rwind函數詳解

      阿里云社區專家博主,星級博主,技術博主 https://developer.aliyun.com/profile/expert/5lkdbuggiiuhc

      華為云云享專家 https://bbs.huaweicloud.com/community/myhomepage

      使用上方的fseek為例子

      int main() { //打開文件 FILE* pf = fopen("test.txt","r"); if(NULL == pf) { perror("fopen"); return -1; } //讀文件 //隨機讀寫 //如果想要第一次讀取就讀到字符c fseek(pf,2,SEEK_SET); //定位文件指針的位置,c相對于字符a,偏移量為2 char ch = fgetc(pf); printf("%c\n",ch);//c //讀取字符之后,文件指針向后偏移,指向d //此時文件指針指向d,相對于起始位置a的偏移量為3 printf("%d\n",ftell(pf)); //3 //假設現在想讀取字符b fseek(pf,-2,SEEK_CUR);//字符b相對于字符d,偏移量為-2 ch = fgetc(pf); printf("%c\n",ch);//b //讀完b之后,文件指針向后偏移,指向c //此時文件指針指向c,相對于起始位置a的偏移量為2 printf("%d\n",ftell(pf)); //2 //3.關閉文件 fclose(pf); pf = NULL; return 0; }

      例子1

      int main() { //打開文件 FILE* pf = fopen("test.txt","r"); if(NULL == pf) { perror("fopen"); return -1; } //讀文件 //假設想讀e fseek(pf,4,SEEK_SET); //e相對于a的偏移量為4 char ch = fgetc(pf); printf("%c\n",ch);//e //讓文件指針回到最初位置->即指向a rewind(pf); ch = fgetc(pf); printf("%c\n",ch);//a //關閉文件 fclose(pf); pf = NULL; return 0; }

      11.文本文件和二進制文件

      概念

      根據數據的組織形式,數據文件被稱為文本文件或者二進制文件。 數據在內存中以二進制的形式存儲,如果不加轉換的輸出到外存,就是二進制文件。

      如何存儲

      如果要求在外存上以ASCII碼的形式存儲,則需要在存儲前轉換。以ASCII字符的形式存儲的文件就是文本文件。 一個數據在內存中是怎么存儲的呢? 字符一律以ASCII形式存儲,數值型數據既可以用ASCII形式存儲,也可以使用二進制形式存儲。 如有整數10000,如果以ASCII碼的形式輸出到磁盤,則磁盤中占用5個字節(每個字符一個字節),而二進制形式輸出,則在磁盤上只占4個字節(VS2013測試)。

      例子:整數10000以ASCII存儲和以二進制形式存儲

      以ascii碼形式存儲時,占用5個字節(因為每一個數都占一個字節),而用二進制形式存儲時,占用4個字節(整形)

      驗證:把10000寫到文件中再讀取出來

      int main() { //打開文件 FILE* pf = fopen("data.txt","wb");//以二進制形式寫入打開 if(NULL == pf) { perror("fopen"); return -1; } //以二進制形式寫文件,把10000以二進制形式寫到文件中 int a =10000; fwrite(&a,sizeof(int),1,pf); //第一個參數:要寫入數據的地址 //第二個參數:要寫入數據的每一個的大小 //第三個參數:要寫入多少個數據 //第四個參數:文件指針 //關閉文件 fclose(pf); pf = NULL; return 0; }

      執行后data.txt的結果

      看不懂

      開發者

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:貪心科技機器學習訓練營(四)
      下一篇:C語言基本文件編程操作(讀寫)
      相關文章
      亚洲a∨无码男人的天堂| 亚洲av无码一区二区三区网站 | 亚洲精品国产suv一区88| 亚洲黄色免费网址| 亚洲综合成人网在线观看| 久久精品国产亚洲AV果冻传媒| 亚洲伊人久久精品影院| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 亚洲激情电影在线| 亚洲色av性色在线观无码| 亚洲一区二区成人| 亚洲精品成人图区| 亚洲精品国产手机| 亚洲妇女水蜜桃av网网站| 亚洲欧洲日产国码www| 亚洲天堂一区二区三区四区| 亚洲AV一二三区成人影片| 亚洲色图激情文学| 亚洲精品无码永久在线观看男男 | 精品亚洲AV无码一区二区三区 | 亚洲午夜久久久久妓女影院 | 亚洲不卡1卡2卡三卡2021麻豆| 亚洲一区二区三区四区视频| 亚洲三级在线播放| 亚洲中文字幕AV在天堂| 亚洲欧美精品午睡沙发| 亚洲AV无码一区二区一二区| 亚洲av无码专区在线观看素人| 亚洲精品国产成人影院| 国产亚洲精品资在线| 亚洲精品国精品久久99热一| 亚洲AV日韩精品久久久久久久| 日产亚洲一区二区三区| 亚洲国产精品张柏芝在线观看| 亚洲中文字幕久在线| 亚洲日本中文字幕天天更新| 国产精品亚洲综合天堂夜夜| 亚洲无码黄色网址| 亚洲国产精品乱码一区二区| 亚洲视频小说图片| 亚洲国产精品免费观看|