J'essaie de comprendre getchar() != EOF

Je suis en train de lire Le Langage de Programmation C et ont tout compris à ce jour.
Cependant, quand je suis tombé sur le getchar() et putchar(), je n'ai pas réussi à comprendre quel est leur usage, et, plus précisément, ce que le code suivant ne.

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

Je comprends la main() fonction, la déclaration de l'entier c et la while boucle. Pourtant, je suis confus au sujet de la condition à l'intérieur de la while boucle. Qu'est-ce que l'entrée dans ce code en C, et qu'est-ce que la sortie.

Désolé si c'est une base et question stupide, mais je suis à la recherche d'une explication simple avant de passer dans le livre et de devenir plus confuse.

  • Il a juste des échos de retour ce que vous tapez dans le terminal. Jusqu'à ce que vous atteignez la fin de saisie de code de contrôle. Ctrl+Z sur Windows, Ctrl+D sur *nix.