rewind()
ist in der stdio
definiert, die in C über stdio.h
, bzw in C++ über cstdio
eingebunden wird.
rewind()
dient dazu die aktuelle Schreibe/Lese-Position in der angegebenen Datei bzw im angegebenem Stream an den Anfang zurück zu setzen.
#include <stdio.h> void rewind(FILE *file);
file: Zeiger auf geöffneten Stream.
Der Aufruf von rewind()
bewirkt das gleiche wie der Aufruf von
fseek (file, 0, SEEK_SET);
rewind()
setzt jedoch zusätzlich den Fehler-Indikator zurück.
Wurde die Datei bzw. der Stream zum Lesen und Schreiben geöffnet kann mit rewind()
zwischen Lesen und Schreiben gewechselt werden.
Durch den automatischen Wechsel zwischen Schreib- und Lesemodus kann es zu Fehlern kommen, wenn man die falschen Operationen auf den Stream ausführt.
#include <stdio.h> #include <stdlib.h> int main() { char text[] = "proggen.org", buffer[12]; int i; FILE *file = fopen ("test.txt", "w"); // neue Datei erstellen if (file != NULL) // prüfe ob die Datei korrekt erstellt wurde { fputs (text, file); // screibe Text in die Datei fclose (file); // Datei schließen } file = fopen ("test.txt", "r"); // Datei zum Lesen öffnen if (file != NULL) // prüfe ob die Datei korrekt geöffnet wurde { for (i = 0; i < 5; i++) { fgets (buffer, 12, file); // Daten aus der Datei auslesen printf ("%s\n", buffer); // Daten ausgeben rewind (file); // Datei zurücksetzen } fclose (file); // Datei schließen } return EXIT_SUCCESS; }
Ausgabe:
proggen.org proggen.org proggen.org proggen.org proggen.org