Ir ao conteúdo

Eof


E.M.I.C.I.D.A

Posts recomendados

Postado

Pessoal, boa tarde !

Gostaria de saber o que é EOF (end of file), pois estou lendo um livro de C, porém ele menciona sobre EOF, e eu não consegui entender a funcionalidade e como saber se é o caracter de fim de arquivo.

Alguém pode me explicar por gentileza ?

E se possível,dar-me um exemplo.

Obrigado.

Postado

Num arquivo você pode usar a função "feof(nomedoarquivo)" pra saber se acabou os caracteres do arquivo. Se ela retornar verdadeiro, acabou, se retornar falso, ainda tem caracteres.

Já o EOF é uma constante, ela é retornada por algumas funções quando estas tentam ler alguma coisa e não conseguem. Um exemplo é a função scanf, quando ela não consegue ler nada, ela retorna o valor EOF.

Exemplos de como usar:

FILE *arq; 
arq = fopen("teste.txt", "r");

while (!feof(arq))
{
scanf ("%d", var);
}

FILE *arq;
arq = fopen ("teste.txt", "r");

while(1)
{
if (scanf ("%d", var) == EOF) break;
}

Postado

Clark,

Por exemplo, se eu quero digitar um int e verificar se ele é o Fim-De-Arquivo eu faço o seguinte programa:


#include <stdio.h>

void main (){

int c;

c=getchar();
while(c!=EOF)
c=getchar();
printf("EOF = %d",c);
}

Ele irá ler o inteiro e enquanto não for EOF ele receberá um novo valor até que seja EOF e retornará o valor dele.

Mas, quando saberei se o inteiro digitado é o EOF ?

Neste caso, tem EOF ? (já que o programa não retornou nada).

Obrigado.

Postado

Nesse caso acho que teria que ser assim:

#include <stdio.h>

int main (void)
{
int c;

while(1)
if (scanf("%c", c) == EOF) break;

printf("EOF = %d",c);

return 0;
}

Porque getchar em si não retorna EOF, retorna se não me engano NULL. Então teria que ser algo do tipo if (getchar() == NULL) break; Mas se você tá atribuindo isso a uma variavel não tem como usar a função na comparação, então é melhor usar scanf.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!