Sdílet prostřednictvím


feof

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