getchar () n’appelle que toutes les deux fois

Lors de l’utilisation de Ch Standard Interpreter, getchar() que toutes les lignes.

 C:/> char a = getchar(); C:/> char b = getchar(); b C:/> char c = getchar(); C:/> char d = getchar(); d 

J’ai le même problème lorsque j’utilise scanf("%c", &a) place; dans Vim, la déclaration est ignorée.

 printf("\nType of Something\nA for SomethingA\nB for SomethingB " "\nC for SomethingC\n\nSelect (A,B,C) > "); char letter = getchar(); // This statement gets skipped return 0; 

Lorsque vous tapez “A” sur le clavier, vous appuyez d’abord sur “A”, puis sur “ENTRER”, non? Ainsi, getchar() ou scanf("%c", ....) obtient deux caractères à lire: “A” et le caractère de nouvelle ligne de la touche “Entrée”.

Si vous utilisez votre code dans une boucle, ou juste à plusieurs resockets, le premier getchar () lira le caractère de nouvelle ligne de l’entrée précédente.