>>775
scanf()は、書式指定に従って読み取れるところまでを読み取り、残りは
ストリームバッファに残す。
実際にどの程度を読み取れたかは、戻り値や%n指定子を使えば判別できる。

%s指定子などは、幅を指定しない限りバッファオーバーフローを
引き起こす危険性があることに注意(gets()と同じ)。
%sや%dなどは先頭の空白を読み飛ばすが、読み飛ばされる空白には
改行文字も含まれることにも注意。逆に、%cなどは空白を
読み飛ばさないことにも注意。
以上のような点を理解して、適切な使い方をしている限りは何も問題は無い。
scanf()の問題のほとんどは、正しい使い方をしないことに起因する。