Namespaces
Variants

std:: feof

From cppreference.net
< cpp ‎ | io ‎ | c
Definiert in Header <cstdio>
int feof ( std:: FILE * stream ) ;

Überprüft, ob das Ende des angegebenen Dateistroms erreicht wurde.

Inhaltsverzeichnis

Parameter

stream - der zu prüfende Dateistrom

Rückgabewert

Ein Wert ungleich Null, wenn das Ende des Streams erreicht wurde, andernfalls 0 .

Hinweise

Diese Funktion meldet nur den Stream-Zustand, wie er vom letzten I/O-Vorgang gemeldet wurde; sie untersucht nicht die zugehörige Datenquelle. Beispielsweise, wenn der letzte I/O-Vorgang ein std::fgetc war, der das letzte Byte einer Datei zurückgab, gibt std::feof null zurück. Der nächste std::fgetc schlägt fehl und ändert den Stream-Zustand in end-of-file . Erst dann gibt std::feof einen Wert ungleich null zurück.

Im typischen Gebrauch stoppt die Eingabestromverarbeitung bei jedem Fehler; feof und std::ferror werden dann verwendet, um zwischen verschiedenen Fehlerzuständen zu unterscheiden.

Beispiel

#include <cstdio>
#include <cstdlib>
int main()
{
    int is_ok = EXIT_FAILURE;
    FILE* fp = std::fopen("/tmp/test.txt", "w+");
    if (!fp)
    {
        std::perror("File opening failed");
        return is_ok;
    }
    int c; // Hinweis: int, nicht char, erforderlich um EOF zu verarbeiten
    while ((c = std::fgetc(fp)) != EOF) // Standard C I/O Dateileseschleife
        std::putchar(c);
    if (std::ferror(fp))
        std::puts("I/O error when reading");
    else if (std::feof(fp))
    {
        std::puts("End of file reached successfully");
        is_ok = EXIT_SUCCESS;
    }
    std::fclose(fp);
    return is_ok;
}

Ausgabe:

End of file reached successfully

Siehe auch

prüft, ob das Dateiende erreicht wurde
(öffentliche Elementfunktion von std::basic_ios<CharT,Traits> )
löscht Fehlerindikatoren
(Funktion)
gibt eine dem aktuellen Fehler entsprechende Zeichenkette an stderr aus
(Funktion)
prüft auf einen Dateifehler
(Funktion)