Compartilhar via


feof

Testes para o final do arquivo em um fluxo.

int feof( 
   FILE *stream 
);

Parâmetros

  • stream
    Ponteiro para FILE estrutura.

Valor de retorno

O feof função retorna um valor diferente de zero se uma operação de leitura tentou fazer a leitura ultrapassou o fim do arquivo. Caso contrário, ele retornará 0.Se o ponteiro de fluxo for NULL, a função chama o manipulador de parâmetro inválido, conforme descrito em Validação de parâmetro.Se a execução terá permissão para continuar, errno for definido como EINVAL e o feof retorna 0.

Consulte _doserrno, errno, _sys_errlist e _sys_nerr para obter mais informações sobre estes e outros, códigos de erro.

Comentários

O feof rotina (implementada como uma função e uma macro) determina se o final do stream foi passado.Quando o final do arquivo é passado, leia operações retornam um indicador de fim-de-arquivo até que o fluxo está fechado ou até que rewind, fsetpos, fseek, ou clearerr denomina-se contra ele.

Por exemplo, se um arquivo contém 10 bytes e você ler 10 bytes do arquivo, feof retornará 0 porque, mesmo que o ponteiro de arquivo está no final do arquivo, você não tentou ler além do fim.Apenas após você tentar ler um byte 11º terá feof retornam um valor diferente de zero.

Requisitos

Função

Cabeçalho necessário

feof

<stdio.h>

Para obter informações adicionais de compatibilidade, consulte compatibilidade na introdução.

Exemplo

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

Entrada: crt_feof.txt

Line one.
Line two.

xssktc6e.collapse_all(pt-br,VS.110).gifSaída

Number of bytes read = 19

Equivalência do .NET Framework

Não aplicável. Para chamar a função c padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.

Consulte também

Referência

Erro de manipulação (CRT)

Fluxo de i/O

clearerr

_eof

ferror

perror, _wperror