C · Essencial · Inglês · Técnico
EOF
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.