🌏个人博客:尹蓝锐的博客
希望文章能够给到初学的你一些启发~ 如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏支持一下笔者吧~
1、rewind官方解释:
void rewind ( FILE * stream );
Set position of stream to the beginning
Sets the position indicator associated with stream to the beginning of the file.
The end-of-file and error internal indicators associated to the stream are cleared after a successful call to this function, and all effects from previous calls to ungetc on this stream are dropped.
On streams open for update (read+write), a call to rewind allows to switch between reading and writing.
1.将流的位置设置为开头将与流关联的位置指示器设置为文件的开头。
2.成功调用此函数后,与流相关的文件结束和错误内部指示符将被清除,并且之前调用ungetc对此流的所有影响都将被丢弃。
3.在打开进行更新(读+写)的流中,通过调用倒带可以在读和写之间切换。
注意:此函数无返回值
2、举例:
#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));//光标值为0
fputs("abc", fp);
printf("%d\n", ftell(fp));//光标值为3
fclose(fp);
fp = fopen("myfile.txt", "a+");
fprintf(fp, "%d", 28);
printf("%d\n", ftell(fp));//光标值为5
ch = fgetc(fp); //因为此时光标值为5所以fgetc向后取不到任何值,所以打印ch无输出,并且调用了fgetc函数光标值又往后移一位
printf("%c", ch);
printf("%d\n", ftell(fp));//光标值为6
rewind(fp); //重置光标值
printf("%d\n", ftell(fp));//光标值为0
fscanf(fp, "%s", str);
puts(str);
fclose(fp);
return 0;
}
3、输出:
0
3
5
6
0
abc28
4、rewind函数的优点:
可以不用重新打开文件就可使文件读写指针指向文件开始位置
如果我的博客能给您带来启发,请不吝点赞、评论和收藏,也欢迎您关注我的博客。
如果你喜欢这篇文章,别忘了留下你的感想和建议,让我知道你的想法。同时,也请继续关注我的博客,我们不见不散!
最后,愿每一位读到这里的你,都能拥有一个充实而美好的每一天。不管世界怎样变化,保持学习,保持热爱,保持对生活的好奇心,我们的故事,还在继续……