Qu’est-ce que le tampon d’entrée standard?

#include  int main(void) { int c; c = getchar(); putchar(c); c = getchar(); putchar(c); c = getchar(); putchar(c); return 0; } 

Je veux comprendre pourquoi la fonction appelée trois fois fonctionne avec une ligne entrée une seule fois. Un type a expliqué que nous travaillions avec le tampon d’entrée standard dans cette situation et qu’il s’agissait d’un morceau de mémoire. Je veux lire quelque chose à ce sujet. Pouvez-vous me conseiller des ressources?

Ceci est une fonctionnalité de votre terminal (la fenêtre de ligne de commande).

Par défaut, le terminal collecte les entrées de l’utilisateur jusqu’à ce qu’il appuie sur Entrée / Retour. Ensuite, toute la ligne est poussée dans le stream de fichiers d’entrée de votre programme ( stdin , c’est-à-dire; puisque vous utilisez plutôt que , aucun cin n’est impliqué).

Ceci est utile car votre programme n’a pas à interpréter tous les événements du clavier (par exemple, en supprimant des lettres lorsque vous appuyez sur la touche Retour arrière). Les programmes qui veulent gérer le clavier eux-mêmes peuvent désactiver ce mode de saisie par défaut. Je pense que les mots clés pertinents de Google pour cela sont terminfo ou termcap .

En ce qui concerne plus particulièrement votre question, une ligne d’entrée est getchar() pour trois appels getchar() si elle contient trois caractères. Si vous avez entré un seul caractère, votre programme devrait attendre les prochains appels getchar() pour plus d’entrées.