Estoy tratando de entender getchar ()! = EOF

Estoy leyendo The C Programming Language y he entendido todo hasta ahora. Sin embargo, cuando me encontré con elgetchar() yputchar(), No pude entender cuál es su uso y, más específicamente, qué hace el siguiente código.

main()
{
    int c;
    while ((c = getchar()) != EOF)
       putchar(c);
}

Yo entiendo elmain() función, la declaración del enteroc y elwhile lazo. Sin embargo, estoy confundido acerca de la condición dentro de lawhile lazo. ¿Cuál es la entrada en este código C, y cuál es la salida.

Lo siento si esta es una pregunta básica y estúpida, pero solo busco una explicación simple antes de continuar con el libro y confundirme.

Respuestas a la pregunta(8)

Su respuesta a la pregunta