函数名: fseek
头文件:<stdio.h>
函数原型: int fseek(FILE *stream, long offset, int fromwhere);
功 能: 重定位流上的文件指针 在流上重新定位文件结构的位置。fseek设置与流stream相联系的文件指针到新的位置,新位置与fromwhere给定的文件位置的距离为offset字节。
参 数: FILE *stream 要重定位的流
long offset 重定位的偏移量
int fromwhere 重定位的位置
返回值: 成功 返回0 ,出错或失败 返回非0值。
补 充: fromwhere的取值必须是0,1或2中的一个分别代表在stdio.h中定义的三个符号常量:
0是SEEK_SET,是文件开始位置;
1是SEEK_CUR,是当前的指针位置;
2时SEEK_END,是文件末尾。
调用了fseek之后,在更新的文件位置上,下一个操作可以是输入;也可以是输出。
程序例: 打开文件,将字符串输入到文件流stream中,并重定位到文件的开头,输出文件的长度
#include<stdio.h> long filesize(FILE *stream); int main(void){ FILE *stream = fopen("myfile.txt", "w+"); fprintf(stream, "www.dotcpp.com"); fseek(stream, 0, SEEK_END); printf("Filesize of myfile.txt is %ld bytes\n", ftell(stream)); fclose(stream); return 0; }
运行结果
Filesize of myfile.txt is 14 bytes
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程