feof

 

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

Tests de fin de fichier sur un flux de données.

int feof(   
   FILE *stream   
);  

Paramètres

stream
Pointeur vers la structure FILE .

Le feof fonction 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. Si le pointeur de flux est NULL, la fonction appelle le Gestionnaire de paramètre non valide, comme décrit dans Validation de paramètre. Si l’exécution est autorisée à se poursuivre, errno a EINVAL et feof renvoie la valeur 0.

Consultez la page _doserrno, errno, _sys_errlist et _sys_nerr pour plus d’informations sur les autres codes d’erreur.

Le feof routine (implémentée comme une fonction et comme une macro) détermine si la fin de stream a été passé. Lorsque la fin du fichier est passé, lisez les opérations retournent un indicateur de fin de fichier jusqu'à ce que le flux est fermé ou jusqu'à ce que rewind, fsetpos, fseek, ou clearerr est appelé sur lui.

Par exemple, si un fichier contient 10 octets et que vous lisez le fichier, 10 octets feof retourne 0 car, même si le pointeur de fichier est à la fin du fichier, vous n’avez pas tenté de lire au-delà de la fin. Seulement une fois que vous essayez de lire un octet 11 feof retourner une valeur différente de zéro.

FonctionEn-tête requis
feof<stdio.h>

Pour plus d'informations sur la compatibilité, voir Compatibilité dans l'introduction.

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

Line one.  
Line two.  

Sortie

Number of bytes read = 19  

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de plateforme.

Gestion des erreurs
Flux d’e/s
clearerr
_eof
ferror
pError, _wperror

Afficher: