Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Testuje ukončení souboru ve streamu.
Syntaxe
int feof(
FILE *stream
);
Parametry
stream
Ukazatel na FILE strukturu.
Vrácená hodnota
Funkce feof vrátí nenulovou hodnotu, pokud se operace čtení pokusila přečíst po konci souboru; v opačném případě vrátí hodnotu 0. Pokud je NULLukazatel datového proudu , funkce vyvolá neplatnou obslužnou rutinu parametru, jak je popsáno v ověření parametru. Pokud je povoleno pokračovat spuštěním, errno je nastaveno na EINVAL hodnotu a feof vrátí hodnotu 0.
Další informace o návratových kódech naleznete v tématu errno, _doserrno, _sys_errlista _sys_nerr.
Poznámky
Rutina feof (implementovaná jako funkce i makro) určuje, zda byl konec stream předán. Po předání konce souboru vrátí operace čtení indikátor konce souboru, dokud se datový proud zavře nebo dokud rewind, fsetpos, fseeknebo clearerr je volána proti němu.
Pokud například soubor obsahuje 10 bajtů a 10 bajtů ze souboru přečtete, vrátí hodnotu 0, feof protože i když je ukazatel souboru na konci souboru, nepokoušli jste se přečíst za koncem. Až po pokusu o přečtení 11. bajtu vrátí feof nenulovou hodnotu.
Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.
Požadavky
| Function | Požadovaný hlavičkový soubor |
|---|---|
feof |
<stdio.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Příklad
// 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 );
}
Vstup: crt_feof.txt
Line one.
Line two.
Výstup
Number of bytes read = 19
Viz také
Zpracování chyb
Vstupně-výstupní operace streamu
clearerr
_eof
ferror
perror, _wperror