Logo Hardware.com.br
Hugo BB
Hugo BB Novo Membro Registrado
3 Mensagens 0 Curtidas

C - Eof

#1 Por Hugo BB 30/05/2009 - 00:03

#include <stdio.h>

main() {
int c;
while( (c = getchar()) != EOF)
putchar(c);
}
Pessoal, estou compilando o programa acima no dev C++, mas não estou compreendendo o resultado. Ele não deveria se encerrar após a digitação dos caracteres (e após a impressão deles na tela) ? O meu executável não encerra nunca, depois que os caracteres são impressos, ele "pede" novamente que o usuário digite algo, como se tivesse executado de novo a função getchar. Mas o programa deveria sair do loop e se encerrar, não?

Agradeço a ajudabom_trabalho.gif
pflynn
pflynn Ubbergeek Registrado
5.5K Mensagens 122 Curtidas
#4 Por pflynn
01/06/2009 - 13:46
help_service disse:


Não há problema algum no código. É como o MCV disse. EOF não é um caractere que pode ser digitado. EOF é, na verdade, apenas um valor especial retornado por determinadas funções de E/S da biblioteca padrão de C quando elas detectam a condição de fim de arquivo. No caso de um programa que lê da entrada padrão e a entrada padrão está associada ao teclado, essa condição pode ser atingida quando o usuário pressiona a combinação de teclas CTRL+D (ou CTRL+Z, no caso dos SOs Windows).
------------------------------------------------
Muito bom. Mas tijolo não revida!
------------------------------------------------
© 1999-2025 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal