🌏个人博客:尹蓝锐的博客
希望文章能够给到初学的你一些启发~ 如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏支持一下笔者吧~
fseek函数
int fseek ( FILE * stream, long int offset, int origin );
- 重新定位流位置指示器将与流关联的位置指示器设置到新位置。
- 对于以二进制模式打开的流,新位置是通过向原点指定的参考位置添加偏移量来定义的。
- 对于以文本模式打开的流,偏移量应为零或之前调用ftell返回的值,原点必须为SEEK_SET。
- 如果使用这些参数的其他值调用函数,则支持取决于特定的系统和库实现(不可移植)。
- 成功调用此函数后,流的文件结束内部指示符将被清除,并且之前调用ungetc对此流的所有影响都将被删除。
- 在打开进行更新(读+写)的流上,调用fseek可以在读和写之间切换。
简单应用:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{FILE* fp;char str[10];char ch = 0;int n;fp = fopen("myfile.txt", "w");printf("%d\n", ftell(fp));//光标值为0fputs("abc", fp);printf("%d\n", ftell(fp));//光标值为3fclose(fp);fp = fopen("myfile.txt", "a+");//以追加方式打开文件,光标值从文件结尾处开始fprintf(fp, "%d", 28);printf("%d\n", ftell(fp));//光标值为5fseek(fp, -2, 1); //光标从当前位置向后移2位,光标值变为3printf("%d\n", ftell(fp));ch = fgetc(fp); //因为调用了一次fgetc函数所以,光标值又往后移一位printf("%c\n", ch);printf("%d\n", ftell(fp));//光标值为4rewind(fp); //重置光标值printf("%d\n", ftell(fp));//光标值为0fscanf(fp, "%s", str);puts(str);fclose(fp);return 0;
}
输出结果:
如果我的博客能给您带来启发,请不吝点赞、评论和收藏,也欢迎您关注我的博客。
如果你喜欢这篇文章,别忘了留下你的感想和建议,让我知道你的想法。同时,也请继续关注我的博客,我们不见不散!
最后,愿每一位读到这里的你,都能拥有一个充实而美好的每一天。不管世界怎样变化,保持学习,保持热爱,保持对生活的好奇心,我们的故事,还在继续……