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个字节处)

爱用云互联租用服务器租美国、日本、美国、日本、购买2天内不满意可以退换,IP可免费更换!

爱用云互联怎么样?爱用云是一家成立于2018年的老牌商家旗下的服务器销售品牌,是正规持证IDC/ISP/IRCS商家,主要销售国内、中国香港、国外服务器产品,线路有腾讯云国外线路、自营香港CN2线路等,都是中国大陆直连线路,非常适合免备案建站业务需求和各种负载较高的项目,同时国内服务器也有多个BGP以及高防节点。专注为个人开发者用户,中小型,大型企业用户提供一站式核心网络云端服务部署,促使用户云端...

CloudCone(12.95美元/月CN2 GT线路,KVM架构1 Gbps带宽

整理一下CloudCone商家之前推送的闪购VPS云服务器产品,数量有限,活动推出可能很快机器就售罄了,有需要美国便宜VPS云服务器的朋友可以关注一下。CloudCone怎么样?CloudCone服务器好不好?CloudCone值不值得购买?CloudCone是一家成立于2017年的美国服务器提供商,国外实力大厂,自己开发的主机系统面板,CloudCone主要销售美国洛杉矶云服务器产品,优势特点是...

美国G口/香港CTG/美国T级超防云/物理机/CDN大促销 1核 1G 24元/月

[六一云迎国庆]转盘活动实物礼品美国G口/香港CTG/美国T级超防云/物理机/CDN大促销六一云 成立于2018年,归属于西安六一网络科技有限公司,是一家国内正规持有IDC ISP CDN IRCS电信经营许可证书的老牌商家。大陆持证公司受大陆各部门监管不好用支持退款退现,再也不怕被割韭菜了!主要业务有:国内高防云,美国高防云,美国cera大带宽,香港CTG,香港沙田CN2,海外站群服务,物理机,...

fseek为你推荐
漏洞查询如何查找漏洞 从那做起webservice框架如何用webservice 的cxf框架broadcast播哈尔滨哪里有卖broadcast播 这个服装品牌的gas是什么意思petrol和gas的区别云办公平台什么叫云办公啊?谁能通俗的给我讲下空间导航QQ空间中如何自定义导航?particular教程如何用AE做出花瓣从身体变出来的特效validdate怎样解决oracle报错is not a valid date and timeflex是什么这些b365m和b360m什么意思flv转avi如何把flv转成avi
备案域名购买 上海服务器租用 深圳域名空间 俄罗斯vps qq云存储 国外php主机 韩国加速器 国内永久免费云服务器 360抢票助手 远程登陆工具 java空间 绍兴高防 智能骨干网 域名转向 北京双线机房 刀片式服务器 世界测速 如何注册阿里云邮箱 ca187 根服务器 更多