は、以下のCコードスニペットを検討:差( "%のC"、&C)およびscanf( "%のC"、&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);
期待どおりに動作します。これはなぜですか?
誰かが、入力バッファをクリアすることと関係があると教えてくれました。誰かが同じ光を放つことができるだろうか?
バッファのクリアとスキップの違いを教えてください。私はここでかなり混乱していますか? –
違いは、スペリング、つまり 'ing'の前の5文字です。 「クリア」または「スキップ」には定義された意味はありません。私は意味を選択する場合、 'クリア'は明示的な作業ではプログラマを伴いますが、 'スキップ'はプログラマの明示的な作業なしで 'scanf()' - ファミリー関数の内部で行われますが、ディスカッションや他の人々は、コヒーレントに動作する正当な代替定義を持つかもしれません。 –