- 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 程式設計資源
- 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
廣告