- C 标准库
- C 库 - 首页
- C 库 - <assert.h>
- C 库 - <complex.h>
- C 库 - <ctype.h>
- C 库 - <errno.h>
- C 库 - <fenv.h>
- C 库 - <float.h>
- C 库 - <inttypes.h>
- C 库 - <iso646.h>
- C 库 - <limits.h>
- C 库 - <locale.h>
- C 库 - <math.h>
- C 库 - <setjmp.h>
- C 库 - <signal.h>
- C 库 - <stdalign.h>
- C 库 - <stdarg.h>
- C 库 - <stdbool.h>
- C 库 - <stddef.h>
- C 库 - <stdio.h>
- C 库 - <stdlib.h>
- C 库 - <string.h>
- C 库 - <tgmath.h>
- C 库 - <time.h>
- C 库 - <wctype.h>
- C 标准库资源
- C 库 - 快速指南
- C 库 - 有用资源
- C 库 - 讨论
C 库 - fseek() 函数
C 库的 fseek(FILE *stream, long int offset, int whence) 函数将流的文件位置设置为给定的偏移量。此函数是 C 标准库的一部分,用于文件处理。
语法
以下是 C 库 fseek() 函数的语法:
int fseek(FILE *stream, long int offset, int whence);
参数
此函数接受三个参数:
- SEEK_SET: 文件开头。
- SEEK_CUR: 文件指针的当前位置。
- SEEK_END: 文件结尾。
返回值
函数在成功时返回 0,失败时返回非零值。该函数还会设置 errno 以指示错误。
示例 1:移动到文件开头
此程序打开一个文件,并在读取第一个字符之前将文件指针移动到文件开头。
以下是 C 库 fseek() 函数的示例。
#include <stdio.h> int main() { FILE *file = fopen("example1.txt", "r"); if (file == NULL) { perror("Error opening file"); return 1; } fseek(file, 0, SEEK_SET); char ch = fgetc(file); if (ch != EOF) { printf("First character in the file: %c\n", ch); } fclose(file); return 0; }
输出
以上代码产生以下结果:
First character in the file: [First character of the file]
示例 2:从当前位置向后移动
在此示例中,我们将文件指针移动到从开头算起的第 10 个字节,然后将其向后移动 3 个字节,导致文件指针位于第 7 个字节,从中读取字符。
#include <stdio.h> int main() { FILE *file = fopen("example3.txt", "r"); if (file == NULL) { perror("Error opening file"); return 1; } fseek(file, 10, SEEK_SET); // Move to the 10th byte from the beginning fseek(file, -3, SEEK_CUR); // Move 3 bytes backward from the current position char ch = fgetc(file); if (ch != EOF) { printf("Character after moving backward: %c\n", ch); } fclose(file); return 0; }
输出
执行以上代码后,我们将获得以下结果:
Character after moving backward: [Character at position 7]
广告