scanfは"%s"のようにサイズ指定せずに使うこともできますが,バッファオーバーランの危険性があるので出来るだけちゃんと書きましょう。 scanfの利用 scanfは多機能なので動作のカスタマイズが可能です。そのままの状態ではfgetsの劣化版のように見えてしまいますが,フォーマットをちゃんと書くことで実用性が向上します。 %sはすべての空白文字を無視します。これには半角スペースも含まれています。そこで,%sの代わりに%[^\n]と書くことで,無視する対象を改行だけに限定することができます。%255[^\n]は,改行以外を1〜255文字読み込むことを意味します。 %の代わりに%*を使うと,その部分を読み飛ばすことができます。1行に256文字以上入力されたとき,最初の255文字までを受け取って残りを捨てたい場合は,%255[^\n]%*[^\n]と書きます。 さらに次にscanfを使う場合