scanf の書式文字列
scanf、wscanf への移動
書式文字列は、各種 ...scanf 関数による入力フィールドのスキャン、変換、格納の方法を制御するものです。
書式文字列は、以下の 3 種類のオブジェクトで構成される文字列です。
- 空白文字
- 非空白文字
- 書式指定子
空白文字
空白文字は、スペース、タブ(\t)、改行(\n)のいずれかです。
...scanf 関数は、書式文字列中に空白文字を検出した場合、入力に含まれる次の非空白文字までの連続するすべての空白文字を読み取りますが、格納しません。
末尾の空白文字(改行を含む)は、明示的に一致するものが書式文字列にない限り、無視されます。
非空白文字
非空白文字は空白文字以外のすべての ASCII 文字です。ただし、パーセント記号(%)を除きます。
...scanf 関数は、書式文字列中に非空白文字を検出した場合、一致する非空白文字を読み取りますが、格納しません。
書式指定子
書式指定子は、入力フィールド内の文字を読み取って特定の型の値に変換したあと、アドレス引数で指定された場所に格納するように、...scanf 関数に指示します。
メモ: それぞれの書式指定子には、対応するアドレス引数が必要です。 書式指定子がアドレス引数より多い場合、結果は予測不能で、重大な問題が発生するおそれがあります。
余分なアドレス引数(書式で必要なもの以外)は無視されます。