函数名: 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中,并重定位到文件的开头,输出文件的长度

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#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;
 
}

 

运行结果

1
Filesize of myfile.txt is 14 bytes


点赞(212)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)
#include<stdio.h>
int main()
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX