次の C コード スニペットを検討してください。
#include <stdio.h>
int main()
{
int a;
char c;
scanf("%d",&a);
scanf("%c",&c);
printf("int=%d\n",a);
printf("char=%c\n",c);
}
文字ではなく整数のみを入力できます。出力は単に整数値であり、2 番目の printf ステートメントには値が出力されません。
ただし、フォーマット指定子の前にスペースを使用すると、次のようになります。
scanf(" %c",&c);
期待どおりに動作します。これはなぜですか?
入力バッファのクリアと関係があると誰かが私に言いました。誰かが同じことに光を当てることができますか?