fseekC语言 fseek(fp,offset,SEEK_SET)什么意思

fseek  时间:2021-06-19  阅读:()

fseek()函数

fseek最后一个参数最好不要直接指定一个数值,比如1, 要使用SEEK_CUR,SEEK_END,SEEK_SET 第二个参数表示相对于第三个参数的偏移,整数表示正向偏移,负数表示负向偏移,比如 fseek(fp,-size,SEEK_CUR); 从当前位置向文件后方(比如文件有123三个数字,那么2在三的后方,3在2的前方) fseek(fp,size,SEEK_SET); 从文件开始位置向前移动size 这里默认size是正数

fseek函数

是的 int fseek(FILE *stream, long offset, int fromwhere);函数设置文件指针stream的位置。

如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。

如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置,函数返回一个非0值。

实验得出,超出文件末尾位置,还是返回0。

往回偏移超出首位置,返回-1,且指向一个-1的位置,请小心使用。

fseek函数和lseek函数类似,但lseek返回的是一个off_t数值,而fseek返回的是一个整型。

fseek函数是怎么用的?

fseek函数用于重定位流(数据流/文件)上的文件内部位置指针。

函数原型int fseek(FILE *stream, long offset, int fromwhere); 参数: stream为文件流的指针 offset 偏移量 fromwhere 起始位置 具体功能:如果执行成功,stream将指向以fromwhere(起始位置:文件头0(SEEK_SET),当前位置1(SEEK_CUR),文件尾2(SEEK_END))为基准,偏移offset(指针偏移量)个字节的位置。

如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。

返回值: 成功,返回0,失败返回-1,并设置errno的值,可以用perror()函数输出错误。

实例: #include <stdio.h> long filesize(FILE*stream); int main(void) { FILE *stream; stream=fopen("MYFILE.TXT","w+"); fprintf(stream,"This is a test"); printf("File size of MYFILE.TXT is %ld bytes ",filesize(stream)); fclose(stream); return 0; } long filesize(FILE*stream) { long curpos,length; curpos=ftell(stream); fseek(stream,0L,SEEK_END); length=ftell(stream); fseek(stream,curpos,SEEK_SET); return length; }

c++怎么用fseek函数定位

函数名: fseek 功 能: 是把文件指针指向文件的开头,需要包含头文件stdio.h 用 法: int fseek(FILE *stream, long offset, int fromwhere); 描 述: 函数设置文件指针stream的位置。

如果执行成功,stream将指向以fromwhere为基准,偏移offset个字 节的位置。

如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。

返回值: 成功,返回0,否则返回其他值。

fseek position the file position pointer for the file referenced by stream to the byte location calculated by offset. 程序例: [cpp] view plaincopy #include <stdio.h> long filesize(FILE *stream); int main(void) { FILE *stream; stream = fopen("MYFILE.TXT", "w+"); fprintf(stream, "This is a test"); printf("Filesize of MYFILE.TXT is %ld bytes ", filesize(stream)); fclose(stream); return 0; } long filesize(FILE *stream) { long curpos, length; curpos = ftell(stream); fseek(stream, 0L, SEEK_END); length = ftell(stream); fseek(stream, curpos, SEEK_SET); return length; } int fseek( FILE *stream, long offset, int origin ); 第一个参数stream为文件指针 第二个参数offset为偏移量,整数表示正向偏移,负数表示负向偏移 第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SET SEEK_SET: 文件开头 SEEK_CUR: 当前位置 SEEK_END: 文件结尾 其中SEEK_SET,SEEK_CUR和SEEK_END和依次为0,1和2. 简言之: fseek(fp,100L,0);把fp指针移动到离文件开头100字节处; fseek(fp,100L,1);把fp指针移动到离文件当前位置100字节处; fseek(fp,100L,2);把fp指针退回到离文件结尾100字节处。

使用实例: [cpp] view plaincopy #include <stdio.h> #define N 5 typedef struct student { long sno; char name[10]; float score[3]; } STU; void fun(char *filename, STU n) { FILE *fp; fp = fopen(filename, "rb+"); fseek(fp, -1L*sizeof(STU),SEEK_END); fwrite(&n, sizeof(STU), 1, fp); fclose(fp); } void main() { STU t[N]={ {10001,"MaChao", 91, 92, 77}, {10002,"CaoKai", 75, 60, 88}, {10003,"LiSi", 85, 70, 78}, {10004,"FangFang", 90, 82, 87}, {10005,"ZhangSan", 95, 80, 88}}; STU n={10006,"ZhaoSi", 55, 70, 68}, ss[N]; int i,j; FILE *fp; fp = fopen("student.dat", "wb"); fwrite(t, sizeof(STU), N, fp); fclose(fp); fp = fopen("student.dat", "rb"); fread(ss, sizeof(STU), N, fp); fclose(fp); printf(" The original data : "); for (j=0; j<N; j++) { printf(" No: %ld Name: %-8s Scores: ",ss[j].sno, ss[j].name); for (i=0; i<3; i++) [cpp] view plaincopy printf("%6.2f ", ss[j].score[i]); printf(" "); } fun("student.dat", n); printf(" The data after modifing : "); fp = fopen("student.dat", "rb"); fread(ss, sizeof(STU), N, fp); fclose(fp); for (j=0; j<N; j++) { printf(" No: %ld Name: %-8s Scores: ",ss[j].sno, ss[j].name); for (i=0; i<3; i++) [cpp] view plaincopy printf("%6.2f ", ss[j].score[i]); printf(" "); }

C语言 fseek(fp,offset,SEEK_SET)什么意思

首先得保证文件已经打开,不然会copy报错。

fseek是一种函数 fp :指针 offset:偏移量 seek_set:文件开头 总体意思,将指针移知到文件开头,偏移量为“2”(自己设置多少,正后,负前,我设置的意思是移动道到后2个字节处)

盘点618年中大促中这款云服务器/VPS主机相对值得选择

昨天有在"盘点2021年主流云服务器商家618年中大促活动"文章中整理到当前年中大促618活动期间的一些国内国外的云服务商的促销活动,相对来说每年年中和年末的活动力度还是蛮大的,唯独就是活动太过于密集,而且商家比较多,导致我们很多新人不懂如何选择,当然对于我们这些老油条还是会选择的,估计没有比我们更聪明的进行薅爆款新人活动。有网友提到,是否可以整理一篇当前的这些活动商家中的促销产品。哪些商家哪款产...

趣米云月付460元,香港CN2云服务器VPS月付低至18元

趣米云早期为做技术起家,为3家IDC提供技术服务2年多,目前商家在售的服务有香港vps、香港独立服务器、香港站群服务器等,线路方面都是目前最优质的CN2,直连大陆,延时非常低,适合做站,目前商家正在做七月优惠活动,VPS低至18元,价格算是比较便宜的了。趣米云vps优惠套餐:KVM虚拟架构,香港沙田机房,线路采用三网(电信,联通,移动)回程电信cn2、cn2 gia优质网络,延迟低,速度快。自行封...

RackNerd:便宜vps补货/1核/768M内存/12G SSD/2T流量/1G带宽,可选机房圣何塞/芝加哥/达拉斯/亚特拉大/荷兰/$9.49/年

RackNerd今天补货了3款便宜vps,最便宜的仅$9.49/年, 硬盘是SSD RAID-10 Storage,共享G口带宽,最低配给的流量也有2T,注意,这3款补货的便宜vps是intel平台。官方网站便宜VPS套餐机型均为KVM虚拟,SolusVM Control Panel ,硬盘是SSD RAID-10 Storage,共享G口带宽,大流量。CPU:1核心内存:768 MB硬盘:12 ...

fseek为你推荐
sdfsdfsdf为什么我在dreamweaver里做不出这种居中对齐效果?bean是什么意思FServiceID是什么意思腾讯搜索引擎我在腾讯视频中上传了一个视频,我在搜索引擎中输入关键字搜视频为什么找不到了?4k超高清视频下载哪里有4K片源下载啊?补充:刚入手了一个4k电视盒,小美盒子V9,说是支持4k。正好我的电视机是4k的,想知道哪里有得下载呢?有朋友说我傻,现在基本上没有4k片源下载,而且不知道什么时候才有。等到流行的时候也许这个机器又淘汰啦!我该怎么办啊?snake模型什么是S-L头模型?pps官网pps软件下载中心 pps影视软件下载pat是什么格式怎么能把常用格式的图片转换成PAT格式的呀~手机软件开发工具手机app一般用什么 软件开发netbios协议NetBIOS协议起什么作用?腾讯合作伙伴大会从微信同程旅行买的机票怎么打印电子发票?
合肥虚拟主机 美国主机排名 raksmart mach5 2017年黑色星期五 三拼域名 网站卫士 美国免费空间 微软服务器操作系统 移动服务器托管 net空间 免费网络空间 国外免费云空间 七十九刀 apache启动失败 优惠服务器 cc攻击 瓦工招聘 ddos防火墙 kosspp 更多