- 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 库 - rewind() 函数
C 库函数 void rewind(FILE *stream) 将文件位置指针设置到给定流文件开头。这在执行读/写操作后需要从头重新读取文件内容时特别有用。
语法
以下是 C 库函数 rewind() 的语法:
void rewind(FILE *stream);
参数
此函数只接受一个参数:
- FILE *stream: 指向 FILE 对象的指针,标识该流。FILE 对象通常由 fopen 函数获得,该函数打开文件并将其与流关联。
返回值
rewind 函数不返回值。它静默地执行操作。如果操作失败,它会将文件位置指示器设置为文件的开头,并清除流的文件结束指示器和错误指示器。
示例 1:重新读取文件
此示例演示如何读取文件,使用 rewind 重置位置指示器,然后再次读取文件。
以下是 C 库 rewind() 函数的示例。
#include <stdio.h> int main() { FILE *file = fopen("example.txt", "r"); char ch; if (file == NULL) { perror("Error opening file"); return 1; } printf("First read:\n"); while ((ch = fgetc(file)) != EOF) { putchar(ch); } rewind(file); printf("\n\nSecond read after rewind:\n"); while ((ch = fgetc(file)) != EOF) { putchar(ch); } fclose(file); return 0; }
输出
以上代码产生以下结果:
First read: Hello, World! This is a test file. Second read after rewind: Hello, World! This is a test file.
示例 2:在二进制文件操作中使用 rewind
此示例演示在处理二进制文件时 rewind 的用法。
#include <stdio.h> int main() { FILE *file = fopen("binary.dat", "wb+"); int numbers[] = {1, 2, 3, 4, 5}; int read_numbers[5]; if (file == NULL) { perror("Error opening file"); return 1; } fwrite(numbers, sizeof(int), 5, file); rewind(file); fread(read_numbers, sizeof(int), 5, file); printf("Reading numbers after rewind:\n"); for (int i = 0; i < 5; i++) { printf("%d ", read_numbers[i]); } fclose(file); return 0; }
输出
执行上述代码后,我们将得到以下结果:
Reading numbers after rewind: 1 2 3 4 5
广告