C语言 fseek(f,0,SEEK_SET)函数案例详解
简介
在C语言中,fseek()
函数用于移动指定文件流的文件指针。其中,文件指针是指向文件中特定位置的指针,以便读取或写入某个特定位置的数据。fseek()
函数的原型如下:
int fseek(FILE *stream, long int offset, int whence);
其中,stream
参数是一个指向文件的指针,offset
参数是与whence
参数组合使用的偏移量,而whence
参数指定了开始移动文件指针的位置。fseek()
函数的返回值为0表示移动成功,而-1则表示移动失败。
用法示例
示例一
下面是一个使用fseek()
函数将文件指针移动到文件开头的程序示例:
#include <stdio.h>
int main()
{
FILE *fp;
char buf[1024];
fp = fopen("test.txt", "r");
if(fp == NULL) {
perror("Error opening file");
return -1;
}
fseek(fp, 0, SEEK_SET);
fgets(buf, 1024, fp);
printf("%s\n", buf);
fclose(fp);
return 0;
}
在这个示例中,程序首先尝试打开一个名为test.txt
的文本文件,并将文件指针fp指向该文件。如果打开操作失败,则使用perror()
函数输出错误信息并返回-1。
接下来,程序将文件指针fp调用fseek()
函数将文件指针移动到文件开头,然后使用fgets()
函数读取文件中的一行文本并将其保存在buf
数组中。最后,程序将读取到的文本输出到控制台,并关闭文件指针。
示例二
下面是一个使用fseek()
函数移动文件指针到距离当前位置10个字节后并写入数据的示例:
#include <stdio.h>
int main()
{
FILE *fp;
char str[] = "hello world";
int len;
fp = fopen("test.txt", "w");
len = strlen(str);
fwrite(str, len, 1, fp);
fseek(fp, 10, SEEK_CUR);
fwrite("C programming", 14, 1, fp);
fclose(fp);
return 0;
}
在这个示例中,程序首先尝试打开一个名为test.txt
的文本文件,并将文件指针fp指向该文件。如果打开操作失败,则使用perror()
函数输出错误信息并返回-1。
接下来,程序调用strlen()
函数获取str
字符串的长度,并使用fwrite()
函数将其写入文件中。
接下来,程序调用fseek()
函数将文件指针fp向后移动了10个字节,即距离当前位置10个字节,然后使用fwrite()
函数将字符串C programming
写入文件中。最后,程序关闭文件指针并返回0。
结论
通过以上两个示例,我们可以看到,fseek()
函数在文件操作中具有非常广泛的应用场景。例如,我们可以将文件指针移动到文件开头或文件尾部,也可以将其移动到距离当前位置指定的位置,以便进行读取或写入文件的操作。因此,在进行文件操作时,我们应该充分发挥fseek()
函数的优势,确保程序可以正确读取或写入文件的数据。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言 fseek(f,0,SEEK_SET)函数案例详解 - Python技术站