Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Test für das Dateiende (End-of-File) in einem Stream.
Syntax
int feof(
FILE *stream
);
Parameter
stream
Zeiger zur FILE -Struktur.
Rückgabewert
Die feof-Funktion gibt einen Wert ungleich null zurück, wenn bei einem Lesevorgang versucht wurde, über das Ende der Datei hinaus zu lesen; andernfalls wird 0 zurückgegeben. Wenn der Datenstromzeiger lautet NULL, ruft die Funktion den ungültigen Parameterhandler auf, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, wird errno auf EINVAL festgelegt, und feof gibt 0 zurück.
Weitere Informationen zu Rückgabecodes finden Sie unter , , _doserrno, _sys_errlistund _sys_nerr.errno
Hinweise
Die feof-Routine (die sowohl als Funktion als auch als Makro implementiert ist) bestimmt, ob das Ende von stream überschritten wurde. Wenn das Dateiende überschritten wird, wird von Lesevorgängen ein Indikator des Dateiendes zurückgegeben, bis der Stream geschlossen wird, oder bis rewind, fsetpos, fseek oder clearerr dagegen aufgerufen wird.
Wenn eine Datei beispielsweise 10 Byte enthält und Sie 10 Bytes aus der Datei lesen, wird 0 zurückgegeben, feof da der Dateizeiger am Ende der Datei nicht versucht hat, über das Ende der Datei zu lesen. Nur wenn Sie versuchen, ein elftes Byte zu lesen, wird von feof ein Wert ungleich null zurückgegeben.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Anforderungen
| Funktion | Erforderlicher Header |
|---|---|
feof |
<stdio.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// crt_feof.c
// This program uses feof to indicate when
// it reaches the end of the file CRT_FEOF.TXT. It also
// checks for errors with ferror.
//
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
int count, total = 0;
char buffer[100];
FILE *stream;
fopen_s( &stream, "crt_feof.txt", "r" );
if( stream == NULL )
exit( 1 );
// Cycle until end of file reached:
while( !feof( stream ) )
{
// Attempt to read in 100 bytes:
count = fread( buffer, sizeof( char ), 100, stream );
if( ferror( stream ) ) {
perror( "Read error" );
break;
}
// Total up actual bytes read
total += count;
}
printf( "Number of bytes read = %d\n", total );
fclose( stream );
}
Eingabe: crt_feof.txt
Line one.
Line two.
Output
Number of bytes read = 19
Siehe auch
Fehlerbehandlung
Stream-E/A
clearerr
_eof
ferror
perror, _wperror