の定義によれば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
ます。