ExpertiDict

C · Essencial · Inglês · Técnico

EOF

/iː oʊ ˈɛf/macro

Macro de stdio.h, inteiro negativo que getchar e fgetc devolvem ao fim da entrada ou em erro. Por isso o resultado deve ficar em int, não em char.

Onde usar

Aparece em laços de leitura de arquivo e de stdin. Se o retorno de getchar for guardado em char, o laço pode terminar cedo ou nunca terminar, conforme o char tenha sinal ou não.

Em código

#include <stdio.h>
int main(void) {
  int c;  // int, não char
  while ((c = getchar()) != EOF)
    putchar(c);
  return 0;
}

Exemplos

Loop until getchar returns EOF.

Repita até o getchar devolver EOF.

Store the result in an int, otherwise you can't tell EOF from a real byte.

Guarde o resultado em um int; senão você não distingue EOF de um byte de verdade.

Cuidado

Guardar o retorno em char, o que mistura o byte 255 com EOF; ele também não é um caractere presente no arquivo.

Sinônimos

fim de arquivo

Origem

Sigla de end of file, fim de arquivo.

Veja também

Todos os termos de C