の定義によればgetchar()、標準入力から文字を読み取ります。残念ながらstdin、キーボードと間違えられますが、これは当てはまらない可能性がありますgetchar。getcharとしてバッファを使用しstdin、一度に1文字を読み取ります。あなたの場合、がないEOFので、getcharとputcharは複数回実行されており、文字列全体が一度に印刷されているように見えます。小さな変更を加えると、次のことがわかります。
putchar(c);
printf("\n");
c = getchar();
次に、元のコードと比較した出力を確認します。
getcharバッファリングの概念を説明する別の例stdin:
void main(){
int c;
printf("Enter character");
c = getchar();
putchar();
c = getchar();
putchar();
}
最初のケースでは2文字を入力します。2回目のgetchar実行時に、文字を入力していますか?いいえ、それでもputchar機能します。
これは最終的にはバッファがあることを意味し、何かを入力してEnterをクリックすると、これがバッファに落ち着きます。getcharこのバッファをとして使用しstdinます。