Unas cuantas cosas,
a pesar de que tu compilador lo permita, intenta codificar de una forma más clara. Por ejemplo
main()
es ambiguo. Si no pretendes recibir entradas, entonces es mejor esta forma
int main(void)
más un
return 0;
al final de la función.
Y por favor acomoda las líneas de código. A pesar de que el programa tiene pocas líneas de código, puedes hacerlo más legible.
Ahora bien, con respecto a tu pregunta, no puedes imprimir EOF porque tienes un while que dice "mientras c sea distinto a EOF, entonces entro". Si tienes EOF entonces no entras.
Para ingresar EOF en tu terminal debes presionar CTRL+D en Linux o CTRL+Z en Windows. De esta forma getchar() recibe un EOF.
Si quieres imprimir el valor de EOF entonces puedes hacer:
printf("EOF: %d", EOF);
Si quieres imprimir antes de terminar puedes hacer esto:
#include <stdio.h>
int main (void)
{
int c = '\0';
while (c != EOF) {
c = getchar ();
putchar (c);
}
return 0;
}
El valor de EOF suele ser -1, lo encuentras en stdio.h.