Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Teste la fin de fichier sur un flux.
Syntaxe
int feof(
FILE *stream
);
Paramètres
stream
Pointeur vers la structure FILE .
Valeur retournée
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, elle retourne 0. Si le pointeur de flux est NULL, la fonction appelle le gestionnaire de paramètres non valide, comme décrit dans la validation des paramètres. Si l’exécution est autorisée à se poursuivre, errno a la valeur EINVAL, et feof retourne 0.
Pour plus d’informations sur les codes de retour, consultez , , _sys_errlist_doserrnoet _sys_nerr.errno
Notes
La routine feof (implémentée à la fois en tant que fonction et que macro) détermine si la fin de stream a été passée. Quand 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 que rewind, fsetpos, fseek ou clearerr soit appelé sur lui.
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 du fichier se trouve à la fin du fichier, vous n’avez pas tenté de lire au-delà de la fin. C’est seulement si vous tentez de lire un 11e octet que feof retourne une valeur différente de zéro.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Spécifications
| Fonction | En-tête requis |
|---|---|
feof |
<stdio.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// 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.txt
Line one.
Line two.
Sortie
Number of bytes read = 19
Voir aussi
Gestion des erreurs
E/S de flux
clearerr
_eof
ferror
perror, _wperror