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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言二fseek从文件头移动_编程C语言文件的随机读写

發(fā)布時(shí)間:2025/4/5 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言二fseek从文件头移动_编程C语言文件的随机读写 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

實(shí)現(xiàn)隨機(jī)讀寫的關(guān)鍵是要按要求移動(dòng)位置指針,這稱為文件的定位。

文件定位

移動(dòng)文件內(nèi)部位置指針的函數(shù)主要有兩個(gè),即rewind()和fseek()。rewind函數(shù)前面已多次使用過,其調(diào)用形式為:??? rewind(文件指針);它的功能是把文件內(nèi)部的位置指針移到文件首。下面主要介紹fseek函數(shù)。fseek函數(shù)用來移動(dòng)文件內(nèi)部位置指針,其調(diào)用形式為:??? fseek(文件指針,位移量,起始點(diǎn));其中:

“文件指針”指向被移動(dòng)的文件。

“位移量”表示移動(dòng)的字節(jié)數(shù),要求位移量是long型數(shù)據(jù),以便在文件長(zhǎng)度大于64KB 時(shí)不會(huì)出錯(cuò)。當(dāng)用常量表示位移量時(shí),要求加后綴“L”。

“起始點(diǎn)”表示從何處開始計(jì)算位移量,規(guī)定的起始點(diǎn)有三種:文件首,當(dāng)前位置和文件尾。

其表示方法如下表:

起始點(diǎn)

表示符號(hào)

例如:? ? fseek(fp,100L,0);其意義是把位置指針移到離文件首100個(gè)字節(jié)處。還要說明的是fseek函數(shù)一般用于二進(jìn)制文件。在文本文件中由于要進(jìn)行轉(zhuǎn)換,故往往計(jì)算的位置會(huì)出現(xiàn)錯(cuò)誤。

文件的隨機(jī)讀寫

在移動(dòng)位置指針之后,即可用前面介紹的任一種讀寫函數(shù)進(jìn)行讀寫。由于一般是讀寫一個(gè)數(shù)據(jù)據(jù)塊,因此常用fread和fwrite函數(shù)。下面用例題來說明文件的隨機(jī)讀寫。【例13-8】在學(xué)生文件stu_list中讀出第二個(gè)學(xué)生的數(shù)據(jù)。#include

struct stu{

char name[10];

int num;

int age;

char addr[15];

}boy,*qq;

main(){

FILE *fp;

char ch;

int i=1;

qq=&boy;

if((fp=fopen("stu_list","rb"))==NULL){

printf("Cannot open file strike any key exit!");

getch();

exit(1);

}

rewind(fp);

fseek(fp,i*sizeof(struct stu),0);

fread(qq,sizeof(struct stu),1,fp);

printf("\n\nname\tnumber age addr\n");

printf("%s\t%5d %7d %s\n",qq->name,qq->num,qq->age,qq->addr);

}文件stu_list已由【例13-6】的程序建立,本程序用隨機(jī)讀出的方法讀出第二個(gè)學(xué)生的數(shù)據(jù)。程序中定義boy為stu類型變量,qq為指向boy的指針。以讀二進(jìn)制文件方式打開文件,程序第19行移動(dòng)文件位置指針。其中的i值為1,表示從文件頭開始,移動(dòng)一個(gè)stu類型的長(zhǎng)度,然后再讀出的數(shù)據(jù)即為第二個(gè)學(xué)生的數(shù)據(jù)。

總結(jié)

以上是生活随笔為你收集整理的c语言二fseek从文件头移动_编程C语言文件的随机读写的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。