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

韩国服务器租用优惠点评大全

韩国服务器怎么样?韩国云服务器租用推荐?韩国服务器距离中国近,有天然的地域优势,韩国服务器速度快而且非常稳定!有不少有亚洲市场的外贸公司选择韩国服务器开拓业务,韩国服务器因自身的优势也受到不少用户的青睐。目前的IDC市场上,韩国、香港、美国三个地方的服务器几乎占据了海外服务器的百分之九十以上。韩国服务器相比美国服务器来说速度更快,而相比香港机房来说则带宽更充足,占用市场份额非常大。那么,韩国服务器...

棉花云1折起(49元), 国内BGP 美国 香港 日本

棉花云官网棉花云隶属于江西乐网科技有限公司,前身是2014年就运营的2014IDC,专注海外线路已有7年有余,是国内较早从事海外专线的互联网基础服务提供商。公司专注为用户提供低价高性能云计算产品,致力于云计算应用的易用性开发,并引导云计算在国内普及。目前公司研发以及运营云服务基础设施服务平台(IaaS),面向全球客户提供基于云计算的IT解决方案与客户服务(SaaS),拥有丰富的国内BGP、双线高防...

wordpress外贸集团企业主题 wordpress高级推广外贸主题

wordpress外贸集团企业主题,wordpress通用跨屏外贸企业响应式布局设计,内置更完善的外贸企业网站优化推广功能,完善的企业产品营销展示 + 高效后台自定义设置。wordpress高级推广外贸主题,采用标准的HTML5+CSS3语言开发,兼容当下的各种主流浏览器,根据用户行为以及设备环境(系统平台、屏幕尺寸、屏幕定向等)进行自适应显示; 完美实现一套主题程序支持全部终端设备,保证网站在各...

fseek为你推荐
照片分享求个能共享照片的手机软件爱短信官网求助。爱短信爱聊怎么用?youtube创始人卜秋静 有关生平介绍webservice框架java Webservice都有哪几种方式啊,哪种方式比较好啊微信网页版登陆首页微信网页版怎么用?微信网页版怎么登陆?全局钩子加载全局钩子是什么,每次进入股票软件都说加载全局钩子,是中病毒了吗全局钩子求助:全局钩子是怎么回事啊?下载的游戏为什么会安装钩子?求大神帮助erp系统教程在一个公司里怎样去学ERP东兴证券网站东兴证券开户是假的吗?多看论坛kindle哪个型号最好用
子域名查询 成都主机租用 日本动态vps 高防直连vps 韩国电信 空间打开慢 轻博 win8升级win10正式版 ubuntu更新源 智能骨干网 网站木马检测工具 世界测速 银盘服务是什么 腾讯总部在哪 starry 上海电信测速 我的世界服务器ip 德隆中文网 lamp架构 netvigator 更多