このプログラムの仕組みを理解していませんか?
char c;
int i;
for(i=1;i<=5;i++)
{
scanf("%c",&c);
printf("%c",c);
ungetc(c,stdin);
}
プログラムの出力は、最初に入力された文字が 5 回印刷されます。
a
aaaaa
SO の投稿によると、putc と ungetc の違いは何ですか? ungetc
入力バッファに何かを戻します。
したがって、このプログラムでは、最初の反復中にscanf()
キーボードからの入力を受け入れてprintf()
表示しungetc()
、同じ文字を入力バッファーにプッシュバックします。
しかし、2回目の反復では入力が受け入れられないためprintf()
、入力バッファにプッシュされた文字が出力されると推測していますungetc()
。
誰かがこのプログラムがどのように機能するかを明確に説明できますか?