亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言 文件的隨機讀寫詳解及示例代碼

2020-01-26 14:26:59
字體:
來源:轉載
供稿:網友

前面介紹的文件讀寫函數都是順序讀寫,即讀寫文件只能從頭開始,依次讀寫各個數據。但在實際開發中經常需要讀寫文件的中間部分,要解決這個問題,就得先移動文件內部的位置指針,再進行讀寫。這種讀寫方式稱為隨機讀寫,也就是說從文件的任意位置開始讀寫。

實現隨機讀寫的關鍵是要按要求移動位置指針,這稱為文件的定位。

文件定位函數rewind和fseek

移動文件內部位置指針的函數主要有兩個,即 rewind() 和 fseek()。

rewind() 用來將位置指針移動到文件開頭,前面已經多次使用過,它的原型為:

void rewind ( FILE *fp );

fseek() 用來將位置指針移動到任意位置,它的原型為:

int fseek ( FILE *fp, long offset, int origin );

參數說明:

1) fp 為文件指針,也就是被移動的文件。

2) offset 為偏移量,也就是要移動的字節數。之所以為 long 類型,是希望移動的范圍更大,能處理的文件更大。

3) origin 為起始位置,也就是從何處開始計算偏移量。C語言規定的起始位置有三種,分別為文件開頭、當前位置和文件末尾,

每個位置都用對應的常量來表示:

起始點 常量名 常量值
文件開頭 SEEK_SET 0
當前位置 SEEK_CUR 1
文件末尾 SEEK_END 2

例如,把位置指針移動到離文件開頭100個字節處:

fseek(fp, 100, 0);

值得說明的是,fseek() 一般用于二進制文件,在文本文件中由于要進行轉換,計算的位置有時會出錯。

文件的隨機讀寫

在移動位置指針之后,就可以用前面介紹的任何一種讀寫函數進行讀寫了。由于是二進制文件,因此常用 fread() 和 fwrite() 讀寫。

【示例】從鍵盤輸入三組學生信息,保存到文件中,然后讀取第二個學生的信息。

#include<stdio.h>#define N 3struct stu{  char name[10]; //姓名  int num; //學號  int age; //年齡  float score; //成績}boys[N], boy, *pboys;int main(){  FILE *fp;  int i;  pboys = boys;  if( (fp=fopen("d://demo.txt", "wb+")) == NULL ){    printf("Cannot open file, press any key to exit!/n");    getch();    exit(1);  }  printf("Input data:/n");  for(i=0; i<N; i++,pboys++){    scanf("%s %d %d %f", pboys->name, &pboys->num, &pboys->age, &pboys->score);  }  fwrite(boys, sizeof(struct stu), N, fp); //寫入三條學生信息  fseek(fp, sizeof(struct stu), SEEK_SET); //移動位置指針  fread(&boy, sizeof(struct stu), 1, fp); //讀取一條學生信息  printf("%s %d %d %f/n", boy.name, boy.num, boy.age, boy.score);  fclose(fp);  return 0;}

運行結果:

Input data:
Tom 2 15 90.5亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

亚洲男人天天操| 北条麻妃99精品青青久久| 亚洲欧洲国产一区| 亚洲国产精品国自产拍av秋霞| 国产精品主播视频| 久久久久久久国产精品视频| www.99久久热国产日韩欧美.com| 久久综合色88| 日韩在线激情视频| 久久久久久久久国产| 91av在线精品| 中文字幕亚洲无线码在线一区| 欧美贵妇videos办公室| 亚洲欧美激情精品一区二区| 欧洲s码亚洲m码精品一区| 成人动漫网站在线观看| 欧美性色视频在线| 91免费人成网站在线观看18| 国产精品久久久久久久午夜| 在线亚洲欧美视频| 亚洲精品美女久久久久| 国产精品jizz在线观看麻豆| 国产69精品久久久久9999| 日本一区二三区好的精华液| 欧美激情在线播放| 亚洲一区二区三区毛片| 国内精品久久久久久| 国产日韩欧美91| 日韩美女视频在线观看| 久久影院中文字幕| 亚洲国产中文字幕在线观看| 欧美激情精品久久久| 欧美资源在线观看| 中文字幕精品—区二区| 78色国产精品| 成人在线视频网| 欧美性极品xxxx娇小| 精品福利一区二区| 欧美色另类天堂2015| 日韩成人在线视频| 日韩电影大片中文字幕| 在线a欧美视频| 成人精品在线视频| 欧美日韩性生活视频| 欧美贵妇videos办公室| 国产精品成人在线| 日韩一区av在线| 成人乱人伦精品视频在线观看| 亚洲精品视频在线观看视频| 亚洲一二在线观看| 亚洲成人在线网| 狠狠做深爱婷婷久久综合一区| 国产日韩av在线| 亚洲最大激情中文字幕| 亚洲国产精品福利| 欧美成人网在线| 成人久久一区二区三区| 2019中文字幕全在线观看| 国产精品久久久久久久午夜| 亚洲成av人乱码色午夜| 欧美午夜丰满在线18影院| 欧美尺度大的性做爰视频| 浅井舞香一区二区| 亚洲天堂色网站| 日本精品性网站在线观看| 亚洲第一视频网| 亚洲视频在线观看| 国产精品成人av性教育| 久久久女人电视剧免费播放下载| 久久不射热爱视频精品| 国产一区欧美二区三区| 国产亚洲欧美一区| 国产成人精品一区二区| 欧美在线观看www| 国产精品久久久久久久久久久不卡| 欧洲精品在线视频| 日韩电视剧在线观看免费网站| 日韩电影中文 亚洲精品乱码| 亚洲欧美日本伦理| 午夜欧美大片免费观看| 日韩美女视频免费在线观看| 一区二区三区日韩在线| 91高清视频免费观看| 成人国产亚洲精品a区天堂华泰| 69视频在线免费观看| 久热国产精品视频| 九九精品视频在线| 少妇高潮久久久久久潘金莲| 国产精品女人网站| 亚洲国产成人久久综合一区| 欧美精品www在线观看| 久久久噜噜噜久久| 欧美高清自拍一区| 国内精品久久久久| 欧美丰满少妇xxxx| 欧美激情视频三区| 亚洲在线第一页| 欧美精品激情视频| 亚洲欧美制服第一页| 欧美最顶级的aⅴ艳星| 欧美高跟鞋交xxxxxhd| 国产91久久婷婷一区二区| 久久久久亚洲精品国产| 日韩电影第一页| 国产亚洲欧洲黄色| 久久久女女女女999久久| 亚洲网站在线播放| 成人动漫网站在线观看| 在线视频免费一区二区| 精品久久香蕉国产线看观看gif| 亚洲最大福利视频| 欧美激情在线观看视频| 欧美成人免费全部观看天天性色| 欧美最猛黑人xxxx黑人猛叫黄| 亚洲伦理中文字幕| 红桃视频成人在线观看| 欧美激情videoshd| 久久久国产精品一区| 成人精品久久一区二区三区| 亚洲人成77777在线观看网| 欧美夫妻性生活视频| 久久久久久国产免费| 亚洲在线免费看| 亚洲黄一区二区| 久久久精品国产一区二区| 亚洲精品视频免费在线观看| 中文字幕免费精品一区| 日韩成人av在线| 激情亚洲一区二区三区四区| 欧美丰满片xxx777| 韩国视频理论视频久久| 亚洲视频在线观看视频| 国产日韩精品视频| 亚洲精品成人久久电影| 日韩高清中文字幕| 尤物99国产成人精品视频| 亚洲色图35p| 亚洲精品乱码久久久久久金桔影视| 在线观看日韩视频| 日韩精品高清在线观看| 有码中文亚洲精品| 视频一区视频二区国产精品| 国产精品劲爆视频| 91日本在线视频| 国产成人激情小视频| 精品久久久久久亚洲精品| 欧美成人激情图片网| 亚洲综合小说区| 色偷偷888欧美精品久久久| 亚洲精品视频播放| 亚洲欧美制服另类日韩| 91精品91久久久久久| 成人免费高清完整版在线观看| 欧美性在线视频| 91国内免费在线视频| 亚洲精品福利免费在线观看| 欧美性高潮在线| 久热精品视频在线免费观看| 日韩精品极品视频| 日本高清不卡在线| 成人福利视频在线观看| 国产精品自产拍高潮在线观看| 精品久久中文字幕久久av| 日韩毛片在线观看|