feoffeof

Teste la fin de fichier sur un flux.Tests for end-of-file on a stream.

SyntaxeSyntax

int feof(
   FILE *stream
);

ParamètresParameters

streamstream
Pointeur désignant la structure FILE.Pointer to FILE structure.

Valeur de retourReturn Value

La fonction feof retourne une valeur différente de zéro si une opération de lecture a tenté de lire au-delà de la fin du fichier ; Sinon, retourne 0.The feof function returns a nonzero value if a read operation has attempted to read past the end of the file; it returns 0 otherwise. Si le pointeur de flux a la valeur null, la fonction appelle le gestionnaire de paramètre non valide, comme décrit dans validation de paramètre.If the stream pointer is NULL, the function invokes the invalid parameter handler, as described in Parameter Validation. Si l’exécution est autorisée à se poursuivre, errno a la valeur EINVAL et feof retourne 0.If execution is allowed to continue, errno is set to EINVAL and the feof returns 0.

Pour plus d’informations sur ces codes d’erreur et les autres, consultez _doserrno, errno, _sys_errlist et _sys_nerr.See _doserrno, errno, _sys_errlist, and _sys_nerr for more information on these, and other, error codes.

NotesRemarks

La routine feof (implémentée à la fois en tant que fonction et en tant que macro) détermine si la fin du flux a été passée.The feof routine (implemented both as a function and as a macro) determines whether the end of stream has been passed. Lorsque la fin du fichier est passée, les opérations de lecture retournent un indicateur de fin de fichier jusqu’à ce que le flux soit fermé ou jusqu’à ce que rembobine, fsetpos, fseekou clearerr soit appelé.When the end of file is passed, read operations return an end-of-file indicator until the stream is closed or until rewind, fsetpos, fseek, or clearerr is called against it.

Par exemple, si un fichier contient 10 octets et que vous lisez 10 octets à partir du fichier, feof retourne 0, car même si le pointeur de fichier se trouve à la fin du fichier, vous n’avez pas tenté de lire au-delà de la fin.For example, if a file contains 10 bytes and you read 10 bytes from the file, feof will return 0 because, even though the file pointer is at the end of the file, you have not attempted to read beyond the end. Une fois que vous avez essayé de lire un onzième octet, feof retourne une valeur différente de zéro.Only after you try to read an 11th byte will feof return a nonzero value.

Configuration requiseRequirements

FonctionFunction En-tête requisRequired header
feoffeof <stdio.h><stdio.h>

Pour plus d’informations sur la compatibilité, voir consultez Compatibilité.For additional compatibility information, see Compatibility.

ExemplesExample

// 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 );
}

Entrée : crt_feof.txtInput: crt_feof.txt

Line one.
Line two.

SortieOutput

Number of bytes read = 19

Voir aussiSee also

Gestion des erreursError Handling
E/S de fluxStream I/O
clearerrclearerr
_eof_eof
ferrorferror
perror, _wperrorperror, _wperror