====== rewind() ======
''rewind()'' ist in der ''[[c:lib:stdio:start|stdio]]'' definiert, die in C über ''stdio.h'', bzw in C++ über ''cstdio'' eingebunden wird.
===== Funktion =====
''rewind()'' dient dazu die aktuelle Schreibe/Lese-Position in der angegebenen Datei bzw im angegebenem Stream an den Anfang zurück zu setzen.
===== Signatur =====
#include
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.
===== Fehlerquellen =====
Durch den automatischen Wechsel zwischen Schreib- und Lesemodus kann es zu Fehlern kommen, wenn man die falschen Operationen auf den Stream ausführt.
===== Beispiel =====
#include
#include
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
===== siehe auch =====
[[c:lib:stdio:start|stdio]]: [[c:lib:stdio:fseek|fseek()]]