正常对文件的读写操作都只会让文件指针后移,这里有一个函数可以改变指向
文件内部的指针指向的位置可以通过 fseek 函数进行改变 ;
#include <stdio.h>
int main()
{
FILE *stream;
char line[81];
int result;
stream = fopen("fseek.out", "w+");//文件不存在会创建新文件fseek.out
if (stream == NULL)//打开失败
printf("The file fseek.out was not opened\n");
else
{
fprintf(stream, "The fseek begins here: "//打开成功fprintf写入数据
"This is the file 'fseek.out'.\n");
result = fseek(stream, 0, 0);//移动成功返回0,失败返回非零
printf("ret=%d\n", result);
/*int fseek(FILE* stream, long offset, int orgin);
orgin有三种参数:文件头 SEEK_SET 0
当前位置 SEEK_CUR 1
文件尾 SEEK_END 2
将文件指针移动到指定位置,设置的位置是起始位置+偏移量*/
if (result)
perror("Fseek failed");
else
{
printf("File pointer is set to middle of first line.\n");
fgets(line, 80, stream);//从文件读出
printf("%s", line);
}
fclose(stream);
}
return 0;
}