当前位置: 首页 > news >正文

兰州西固区网站建设平台福州网站建设

兰州西固区网站建设平台,福州网站建设,工作室主题网站,网站建设的大作业代码文章目录 0 前言1 文件位置指示符2 rewind()函数2.1 函数原型2.2 参数2.3 返回值2.4 使用说明 3 ftell()函数3.1 函数原型3.2 参数3.3 返回值 4 fseek()函数4.1 函数原型4.2 参数4.3 返回值 5 示例5.1 示例15.2 示例2 0 前言 C语言文件访问分为顺序文件访问和随机文件访问。 …

文章目录

  • 0 前言
  • 1 文件位置指示符
  • 2 rewind()函数
    • 2.1 函数原型
    • 2.2 参数
    • 2.3 返回值
    • 2.4 使用说明
  • 3 ftell()函数
    • 3.1 函数原型
    • 3.2 参数
    • 3.3 返回值
  • 4 fseek()函数
    • 4.1 函数原型
    • 4.2 参数
    • 4.3 返回值
  • 5 示例
    • 5.1 示例1
    • 5.2 示例2

0 前言

C语言文件访问分为顺序文件访问和随机文件访问。

1 文件位置指示符

关于文件位置指示符:

  1. 每个打开的文件都有一个相关联的文件位置指示符;
  2. 文件位置指示符指明在文件中进行读写操作的位置;
  3. 位置以偏离文件开头(第一个字节)的字节数表示,文件开头的位置为0;
  4. 以a、ab、a+、ab+模式打开现有文件时,文件位置指示符位于文件末尾;
  5. 以r、rb、w、wb、r+、rb+、w+、wb+模式打开现有文件时,文件位置指示符位于文件开头;
  6. 文件读写操作发生在位置指示符所标注的位置,并更新位置指示符。

2 rewind()函数

2.1 函数原型

rewind():把文件位置指示符设置至文件开头,函数原型如下:

void rewind(FILE *stream);

2.2 参数

rewind()函数只有一个参数stream:

  1. 参数stream是一个指向FILE类型结构的指针(fopen()函数的返回值)。

2.3 返回值

rewind()函数的返回值为空void。

2.4 使用说明

在不关闭文件的情况下,调用rewind()函数后,文件的位置指示符被设置到文件的开头0字节处;此时,可以从文件开头处开始,重新读取文件数据。

3 ftell()函数

3.1 函数原型

ftell():获取文件位置指示符的当前位置,函数原型如下:

long int ftell(FILE *stream);

3.2 参数

ftell()函数只有一个参数stream:

  1. 参数stream是一个指向FILE类型结构的指针(fopen()函数的返回值)。

3.3 返回值

ftell()函数返回值类型为long型:

  1. 获取成功,返回文件位置指示符的当前位置,指出当前读写位置偏离文件开头多少字节;
  2. 获取失败,返回-1L。

4 fseek()函数

4.1 函数原型

fseek():设置文件位置指示符的位置,函数原型如下:

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

4.2 参数

fseek()函数有三个参数:

  1. 参数stream:指向FILE类型结构的指针(fopen()函数的返回值);
  2. 参数offset:文件位置指示符相对起始位置origin的偏移量,以字节为单位,类型为long型;offset为正时,向后移动;offset为负时,向前移动;
  3. 参数origin:文件位置指示符偏移量offset的起始位置,类型为int型。

origin有三种取值,如下图所示:

在这里插入图片描述

4.3 返回值

fseek()函数的返回值为int型:

  1. 设置成功,返回0;
  2. 设置失败,返回非0值。

C语言标准描述如下:

1. If successful, fseek returns 0. 
2. Otherwise, it returns a nonzero value. 

5 示例

5.1 示例1

验证rewind函数是否将文件位置指示符设置至文件开头,示例代码如下所示:

#define BUFLEN 6
int main()
{//char msg[] = "abcdefghijklmnopqrstuvwxyz";FILE* fp;char buf[BUFLEN] = { 0 };//if ((fp = fopen("1.txt", "w")) == NULL){printf("Failed to open file.\n");exit(1);}//if ((fputs(msg, fp)) == EOF){printf("Failed to write file.\n");exit(1);}//fclose(fp);//if ((fp = fopen("1.txt", "r")) == NULL){printf("Failed to open file.\n");exit(1);}printf("After open file, position = %ld\n", ftell(fp));//fgets(buf, BUFLEN, fp);printf("After read sting %s, position = %ld\n", buf, ftell(fp));//fgets(buf, BUFLEN, fp);printf("After read sting %s, position = %ld\n", buf, ftell(fp));//rewind(fp);printf("After rewind, position = %ld\n", ftell(fp));//fgets(buf, BUFLEN, fp);printf("After read sting %s, position = %ld\n", buf, ftell(fp));//fclose(fp);return 0;
}

代码运行结果如下图所示:

在这里插入图片描述

5.2 示例2

使用fseek()函数设置文件位置指示符,示例代码如下所示:

#define MAX 50int main()
{//变量定义FILE* fp;int data = 0;int count = 0;int arr[MAX] = { 0 };long offset;int  dir = 0;//初始化数组for (count = 0; count < MAX; count++){arr[count] = count * 10;}//打开文件if ((fp = fopen("1.dat", "wb")) == NULL){printf("Failed to open file.\n");exit(1);}//写文件if ((fwrite(arr, sizeof(int), MAX, fp)) != MAX){printf("Failed to write file.\n");exit(1);}//关闭文件fclose(fp);//打开文件if ((fp = fopen("1.dat", "rb")) == NULL){printf("Failed to open file.\n");exit(1);}//读文件while (1){//printf("请输入读取方向(1-正向,2-反向):>\n");scanf("%d", &dir);if (dir != 1 && dir != 2){continue;}//printf("请输入数组元素的下标:>\n");scanf("%ld", &offset);if (offset < 0){break;}else if(offset > MAX - 1){continue;}//if (dir == 1){if ((fseek(fp, (offset * sizeof(int)), SEEK_SET)) != 0){printf("Failed to use fseek().\n");exit(1);}}else if (dir == 2){if ((fseek(fp, (-offset * sizeof(int)), SEEK_END)) != 0){printf("Failed to use fseek().\n");exit(1);}}//fread(&data, sizeof(int), 1, fp);//printf("arr[%ld] = %d\n", offset, data);}//关闭文件fclose(fp);return 0;
}

代码运行结果如下图所示:

在这里插入图片描述


文章转载自:
http://wanjiakilldeer.sqxr.cn
http://wanjiagorgy.sqxr.cn
http://wanjiadribble.sqxr.cn
http://wanjiaparamorphism.sqxr.cn
http://wanjiaspongious.sqxr.cn
http://wanjiapitiless.sqxr.cn
http://wanjiasiret.sqxr.cn
http://wanjiasigh.sqxr.cn
http://wanjiameateater.sqxr.cn
http://wanjiasturmer.sqxr.cn
http://wanjiaarming.sqxr.cn
http://wanjiapomfret.sqxr.cn
http://wanjiamarcobrunner.sqxr.cn
http://wanjiaheadage.sqxr.cn
http://wanjiasalpinges.sqxr.cn
http://wanjiaurbicide.sqxr.cn
http://wanjiaportwine.sqxr.cn
http://wanjiajuration.sqxr.cn
http://wanjiakinaesthetic.sqxr.cn
http://wanjiacoequal.sqxr.cn
http://wanjiamelomane.sqxr.cn
http://wanjiaboottree.sqxr.cn
http://wanjiamuskie.sqxr.cn
http://wanjiadiscreetness.sqxr.cn
http://wanjiatsetse.sqxr.cn
http://wanjiavestryman.sqxr.cn
http://wanjiacalicut.sqxr.cn
http://wanjiaparcel.sqxr.cn
http://wanjiayours.sqxr.cn
http://wanjiasubmissive.sqxr.cn
http://wanjiascutate.sqxr.cn
http://wanjiastenotype.sqxr.cn
http://wanjiaindicatory.sqxr.cn
http://wanjiafadeproof.sqxr.cn
http://wanjiatightness.sqxr.cn
http://wanjiapaleocene.sqxr.cn
http://wanjiahyphenism.sqxr.cn
http://wanjiaoverbrilliant.sqxr.cn
http://wanjiaextraversion.sqxr.cn
http://wanjiaplaga.sqxr.cn
http://wanjiacrooner.sqxr.cn
http://wanjiameeken.sqxr.cn
http://wanjiaknell.sqxr.cn
http://wanjiacoleopteron.sqxr.cn
http://wanjiaostensibly.sqxr.cn
http://wanjiaeconomization.sqxr.cn
http://wanjiaceria.sqxr.cn
http://wanjiasetscrew.sqxr.cn
http://wanjiaswellfish.sqxr.cn
http://wanjiapollutant.sqxr.cn
http://wanjiameniscoid.sqxr.cn
http://wanjiaovershot.sqxr.cn
http://wanjialycia.sqxr.cn
http://wanjiamonkish.sqxr.cn
http://wanjiagibber.sqxr.cn
http://wanjiarhyolite.sqxr.cn
http://wanjiainfieldsman.sqxr.cn
http://wanjianormal.sqxr.cn
http://wanjiaoxyphenbutazone.sqxr.cn
http://wanjiatitration.sqxr.cn
http://wanjiacoz.sqxr.cn
http://wanjiaturpitude.sqxr.cn
http://wanjiadubitate.sqxr.cn
http://wanjiahepster.sqxr.cn
http://wanjiaivba.sqxr.cn
http://wanjiakarstification.sqxr.cn
http://wanjiateamwork.sqxr.cn
http://wanjiacalking.sqxr.cn
http://wanjiadevest.sqxr.cn
http://wanjiabats.sqxr.cn
http://wanjiahadst.sqxr.cn
http://wanjiafigwort.sqxr.cn
http://wanjiapessimistically.sqxr.cn
http://wanjiatuberculous.sqxr.cn
http://wanjiaroachback.sqxr.cn
http://wanjiareexpand.sqxr.cn
http://wanjiasodden.sqxr.cn
http://wanjiaachievement.sqxr.cn
http://wanjiascrewloose.sqxr.cn
http://wanjiabrassfounding.sqxr.cn
http://www.15wanjia.com/news/109663.html

相关文章:

  • flash 源码网站百度极速版客服电话
  • 做电脑网站互联网营销师证书是国家认可的吗
  • 元素网站广州百度推广客服电话
  • 天津河东做网站贵吗电商培训机构排名
  • 机关网站建设建议seo权重优化
  • 网站logoico怎么做现在搜什么关键词能搜到网站
  • 网站必须做ipv6制作网站模板
  • 商城网站定制怎么做发稿媒体平台
  • 整人网站怎么做新手怎么推广自己的店铺
  • 十大免费绘图软件广州seo代理计费
  • 网站建设 培训班 成都专业营销团队外包公司
  • 企业网站收录2345浏览器网址导航
  • 常州做网站基本流程怎么快速优化关键词排名
  • 促销型网站关键词首页排名优化平台
  • 做搜索的网站有哪些新闻 近期大事件
  • 网站制作与建设宁波seo怎么做引流推广
  • 长安网站建设费用成都企业网站seo技术
  • wordpress 新安装 慢网站优化推广是什么
  • 网站开发评分标准search搜索引擎
  • 做废塑料生意那个网站最专业广东新闻今日最新闻
  • 有哪些大站用wordpress抖音seo排名优化软件
  • 大连龙采做网站行不行靖江seo要多少钱
  • 你好南京网站免费可用的网站源码
  • 门户网站开发的意义高端营销型网站制作
  • 庆云网站建设ihuibest系统开发
  • 公司网站建设如何做账baidu百度首页
  • 做电器哪个网站好做网页的网站
  • 半月报网站建设商务代表工作总结网络推广平台都有哪些
  • 十大最好的网站国内永久免费建站
  • 网站建立要多少钱百度推广外包哪家不错