上一题下一题
跳转到
 
 
  世界如此多姿,发展如此迅速,窥一斑未必还能知全豹。但正如万花筒一样,每一个管窥都色彩斑斓。  
 
 
  知识通道 | 学习首页 | 教师首页 | PK首页 | 知识创造首页 | 企业首页 | 登录
 
本文对应知识领域
文件的随机读写
作者:未知 申领版权
2012年01月24日 共有 1641 次访问 【添加到收藏夹】 【我要附加题目
受欢迎度:

    

文件的随机读写

前面介绍的对文件的读写方式都是顺序读写,即读写文件只能从头开始,顺序读写各个数据。 但在实际问题中常要求只读写文件中某一指定的部分。为了解决这个问题可移动文件内部的位置指针到需要读写的位置,再进行读写,这种读写称为随机读写。
    实现随机读写的关键是要按要求移动位置指针,这称为文件的定位。
    

1.1.1 文件定位

    移动文件内部位置指针的函数主要有两个,即 rewind 函数和fseek函数。
    rewind函数前面已多次使用过,其调用形式为:
    rewind(文件指针);
    它的功能是把文件内部的位置指针移到文件首。
    下面主要介绍fseek函数。
    fseek函数用来移动文件内部位置指针,其调用形式为:
    fseek(文件指针,位移量,起始点);
    其中:
    “文件指针”指向被移动的文件。
    “位移量”表示移动的字节数,要求位移量是long型数据,以便在文件长度大于64KB 时不会出错。当用常量表示位移量时,要求加后缀“L”。
    “起始点”表示从何处开始计算位移量,规定的起始点有三种:文件首,当前位置和文件尾。
    其表示方法如下表。
    

起始点
    
表示符号
    
数字表示
    
文件首
    
SEEK_SET
    
0
    
当前位置
    
SEEK_CUR
    
1
    
文件末尾
    
SEEK_END
    
2
    

例如:
    fseek(fp,100L,0);
    其意义是把位置指针移到离文件首100个字节处。
    还要说明的是fseek函数一般用于二进制文件。在文本文件中由于要进行转换,故往往计算的位置会出现错误。
    

1.1.2 文件的随机读写

在移动位置指针之后,即可用前面介绍的任一种读写函数进行读写。由于一般是读写一个数据据块,因此常用fread和fwrite函数。
    下面用例题来说明文件的随机读写。
    【例13.8】在学生文件stu_list中读出第二个学生的数据。
    #include<stdio.h>
    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的程序建立,本程序用随机读出的方法读出第二个学生的数据。程序中定义boy为stu类型变量,qq为指向boy的指针。以读二进制文件方式打开文件,程序第22行移动文件位置指针。其中的i值为1,表示从文件头开始,移动一个stu类型的长度,然后再读出的数据即为第二个学生的数据。
    

 

相关新闻

选择 (3)
选择 (2)
选择 (1)
没有地图 (2)
没有地图 (1)
强大的“礼物”文化 (4)
强大的“礼物”文化 (3)
强大的“礼物”文化 (2)
强大的“礼物”文化 (1)
抵抗力 (8)

您可能对这些感兴趣  

第7讲 综合分析BIM在运用与推广中的障碍问题
考核学生质量的困难
日本福岛核电站事故初步分析
论科技异化与科技人化
中国科技计划项目管理现状与对策
财政科技资金的审计重点和内容
软科学研究机构在政府决策中的功效、困境及对策研究
打造超级DOS系统(下)
DOS命令基础应用(6)
打造超级DOS系统(上)

题目筛选器
日期:
类型:
状态:
得分: <=
分类:
作者:
职业:
关键字:
搜索

 
 
 
  焦点事件
 
  知识体系
 
  职业列表
 
 
  最热文章
 
 
  最多引用文章
 
 
  最新文章
 
 
 
 
网站介绍 | 广告服务 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈
版权所有 不得转载
沪ICP备 10203777 号 联系电话:021-54428255
  帮助提示    
《我的太学》是一种全新的应用,您在操作中遇到疑问或者问题,请拨打电话13564659895,15921448526。
《我的太学》