首页 > 编程知识 正文

fseek函数将文件指针移动到,fseek函数的用法

时间:2023-05-06 21:09:15 阅读:205205 作者:2110

C语言fseek函数教程

C 语言给我们提供了 fseek

C语言fseek函数详解

语法

int fseek(FILE *fp, long offset, int origin);

参数

参数

描述

fp

文件指针。

offset

偏移量,也就是要移动的字节数。offset 为正时,向后移动;offset 为负时,向前移动。

origin

origin 为起始位置,也就是从何处开始计算偏移量。

origin参数

起始点

常量名

常量值

文件开头

SEEK_SET

0

当前位置

SEEK_CUR

1

文件末尾

SEEK_END

2

头文件

fseek 函数在 stdio.h 的头文件里面。

案例

使用fseek文件指针移动到开始

使用 fseek 函数,实现将文件指针移动到文件的开始

#include

#include

int main(){

printf("嗨客网(www.haicoder.net)nn");

FILE *fp = NULL;

char str[100];

if ( (fp = fopen("c:\1.txt", "wt+")) == NULL )

{

puts("Open file failedn");

return;

}

fputs("Hello HaiCodern", fp);

fputs("Hello Cn", fp);

puts("Write file successn");

while (fgets(str, 100, fp) != NULL)

{

printf("Read line = %s", str);

}

fclose(fp);

return 0;

}

程序运行后,控制台输出如下:

我们首先,使用了

此时,我们看到,我们并没有读取到任何文件内容,这是因为,我们写入文件内容之后,文件指针已经移动到了文件末尾,因此,无法正确读取文件内容,现在,我们修改程序如下:

#include

#include

int main(){

printf("嗨客网(www.haicoder.net)nn");

FILE *fp = NULL;

char str[100];

if ( (fp = fopen("c:\1.txt", "wt+")) == NULL )

{

puts("Open file failedn");

return;

}

fputs("Hello HaiCodern", fp);

fputs("Hello Cn", fp);

puts("Write file successn");

fseek(fp, 0, SEEK_SET);

while (fgets(str, 100, fp) != NULL)

{

printf("Read line = %s", str);

}

fclose(fp);

return 0;

}

程序运行后,控制台输出如下:

这次,我们在写入文件之后,使用了 fseek 函数,将文件指针再次移动到文件的开始,此时再次读取文件内容,我们发现,已经可以读取到文件内容了。

我们再次,使用 feek 函数,实现将文件指针移动到文件的 10 个字节开始的位置,修改代码如下:

#include

#include

int main()

{

printf("嗨客网(www.haicoder.net)nn");

FILE *fp = NULL;

char str[100];

if ( (fp = fopen("c:\1.txt", "wt+")) == NULL )

{

puts("Open file failedn");

return;

}

fputs("Hello HaiCodern", fp);

fputs("Hello Cn", fp);

puts("Write file successn");

fseek(fp, 10, SEEK_SET);

while (fgets(str, 100, fp) != NULL)

{

printf("Read line = %s", str);

}

fclose(fp);

return 0;

}

程序运行后,控制台输出如下:

这次,我们在写入文件之后,使用了 fseek 函数,将文件指针移动到文件的开始 10 个字节的位置,此时再次读取文件内容,我们发现,读取的第一行文件的内容已经不全了。

C语言fseek函数总结

C 语言给我们提供了 fseek 函数,用来实现任意的移动文件指针,注意与 rewind 函数的区别,rewind 函数只能将文件指针移动到文件的开始。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。