c语言二fseek从文件头移动_编程C语言文件的随机读写
实现随机读写的关键是要按要求移动位置指针,这称为文件的定位。
文件定位
移动文件内部位置指针的函数主要有两个,即rewind()和fseek()。rewind函数前面已多次使用过,其调用形式为: rewind(文件指针);它的功能是把文件内部的位置指针移到文件首。下面主要介绍fseek函数。fseek函数用来移动文件内部位置指针,其调用形式为: fseek(文件指针,位移量,起始点);其中:
“文件指针”指向被移动的文件。
“位移量”表示移动的字节数,要求位移量是long型数据,以便在文件长度大于64KB 时不会出错。当用常量表示位移量时,要求加后缀“L”。
“起始点”表示从何处开始计算位移量,规定的起始点有三种:文件首,当前位置和文件尾。
其表示方法如下表:
起始点
表示符号
例如: fseek(fp,100L,0);其意义是把位置指针移到离文件首100个字节处。还要说明的是fseek函数一般用于二进制文件。在文本文件中由于要进行转换,故往往计算的位置会出现错误。
文件的随机读写
在移动位置指针之后,即可用前面介绍的任一种读写函数进行读写。由于一般是读写一个数据据块,因此常用fread和fwrite函数。下面用例题来说明文件的随机读写。【例13-8】在学生文件stu_list中读出第二个学生的数据。#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】的程序建立,本程序用随机读出的方法读出第二个学生的数据。程序中定义boy为stu类型变量,qq为指向boy的指针。以读二进制文件方式打开文件,程序第19行移动文件位置指针。其中的i值为1,表示从文件头开始,移动一个stu类型的长度,然后再读出的数据即为第二个学生的数据。
c语言二fseek从文件头移动_编程C语言文件的随机读写相关推荐
- wav文件头修复_标记管理音频文件工具:Yate for Mac
Yate for Mac是一款Mac平台的音乐标签及管理工具,能够帮助我们轻松编辑音乐文件的元标签数据,支持MP3, M4A, MP4,AIFF, FLAC, WAV以及 DSF格式的音频文件,我们可 ...
- 分享:bbed修改数据文件头推进scn与其他数据文件相同
2019独角兽企业重金招聘Python工程师标准>>> 场景简介: 物理copy表空间数据文件,数据库发生完全检查点,删除该表空间下的数据文件,使该表空间数据文件头的scn与其他数据 ...
- 修改oracle的表空间文件scn,分享:bbed修改数据文件头推进scn与其他数据文件相同...
场景简介: 物理copy表空间数据文件,数据库发生完全检查点,删除该表空间下的数据文件,使该表空间数据文件头的scn与其他数据文件不一致. 场景构造: 1.创建测试表空间 SYS@orser> ...
- C语言文件操作(三) —— 文件的随机读写(fseek / lseek)
目录 1.什么是文件的随机读写 2.认识文件随机读写函数 (1) fseek 函数 -- 移动文件指针的位置 (2) ftell 函数 -- 告知当前文件指针相对于起始位置的偏移量 ( ...
- c语言生成随机坐标,C语言 文件的随机读写详解及示例代码
前面介绍的文件读写函数都是顺序读写,即读写文件只能从头开始,依次读写各个数据.但在实际开发中经常需要读写文件的中间部分,要解决这个问题,就得先移动文件内部的位置指针,再进行读写.这种读写方式称为随机读 ...
- c语言生成随机的坐标,C语言文件的随机读写
前面介绍的文件读写函数都是顺序读写,即读写文件只能从头开始,依次读写各个数据.但在实际开发中经常需要读写文件的中间部分,要解决这个问题,就得先移动文件内部的位置指针,再进行读写.这种读写方式称为随机读 ...
- C语言文件的随机读写
C语言文件的随机读写 文件顺序读写,即读写文件只能从头开始,依次读写各个数据.但在实际开发中经常需要读写文件的中间部分,要解决这个问题,就得先移动文件内部的位置指针,再进行读写.这种读写方式称为随机读 ...
- mysql文件头标记_通过文件头准确识别PHP上传的文件类型 ( 一 )
/** * 通过文件名,获得文件类型* * @version 0.1 * $filename="d:/1.png";echo cFileTypeCheck::getFileType ...
- java校验文件头格式_转自:java 文件格式二进制头文件校验
转自:https://blog.csdn.net/useprogram/article/details/90637401 public class FileTypeUtil { private fin ...
最新文章
- COCO2017数据集api说明
- pythonimportre_Python Re注意问题(持续更新)
- 阿里技术:万级规模K8s如何管理?
- How to bind multiple properties with formatter on one control
- What happened when we perform Maven Update Project in Eclipse
- php接收vue请求数据axios,详解vue axios用post提交的数据格式
- Linux 关于Transparent Hugepages的介绍
- linux下高可用性群集和负载均衡群集的实现
- Linux中如何让进程在后台运行
- 互联网大厂的“中台战略”到底是什么?
- 介绍一下xgb_珍藏版 | 20道XGBoost面试题,你会几个?(上篇)
- sklearn.neighbors.KNeighborsClassifier()函数解析(最清晰的解释)
- python京东抢购软件_福利来了,python 京东抢购茅台脚本(亲测可用)
- 我对于外包开发的看法
- 计算机科学家事迹,【CCF会员故事】计算机软件科学家谢涛:星辰大海,求思进取...
- 海量GIS文章,软件教程,GIs编程奉送!!(转)
- 求职面试:怎样克服面试紧张
- 2020华为春招--N阶方阵旋转(python)
- 33.0 haproxy
- 综述:微生物群落的生物技术潜力及应用
热门文章
- java动态代理上是否能再进行一层代理
- 本人常用的基础 linux命令
- 半径对氢原子基态能级的影响H
- 腾讯云linux服务器怎么使用图形化界面_自己搭建一个自动签到和远程下载的服务器...
- 在c语言中 十六进制转十进制,C语言中十六进制转十进制两种实现方法
- 1.12 梯度的数值逼近-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
- 3.6 激活函数-深度学习-Stanford吴恩达教授
- 【树莓派】可能是最简单粗暴的树莓派搭建个人网站教程
- 【STBC】Alamouti,STBC误码率仿真
- dotConnect for Oracle入门指南(八):通过OracleCommand类使用存储过