scanf の書式指定子

提供: Appmethod Topics
移動先: 案内検索

scanf、wscanf への移動


scanf の書式文字列における書式指定子の形式は以下のとおりです。

% [*] [width] [F|N] [h|l|L] type_char

各書式指定子はパーセント文字(%)で始まります。

% の後に以下の要素がこの順序で現れます。

構成要素 省略可能/必須 意味/機能

[*]

(省略可能)

精度文字。 精度文字はアスタリスク(*)です。C 言語の間接演算子(ポインタ演算子)と混同しないでください。

書式指定子でパーセント記号(%)の後にアスタリスクが来ると、次の入力フィールドはスキャンされますが、次のアドレス引数には代入されません。

読み飛ばされる入力データは、アスタリスク文字の後に現れる型文字で指定される型を持つと仮定されます。

[width]

(省略可能)

幅指定子。 幅指定子(n)は 10 進整数で、現在の入力フィールドから読み取られる文字の最大数を指定します。

最大 n 文字まで読み取られ、変換され、現在のアドレス引数に格納されます。 入力フィールドに含まれている文字の数が n より少ない場合、...scanf 関数はフィールド内のすべての文字を読み取った後、次のフィールドと書式指定子に移ります。

文字上の一致と代入の抑制が成功するかどうかは直接決定できません。

"width" 個の文字をすべて読み取る前に空白文字または変換不能文字を検出した場合、...scanf 関数は以下のように処理します。

  • それまでに読み取った文字を変換して格納したあと、
  • 次の書式指定子に移ります。

変換不能文字は、指定された書式に従って変換することができない文字(書式が 8 進の場合の 8 や 9、書式が 16 進または 10 進の場合の J や K、など)のことです。

[F|N]

(省略可能)

ポインタ サイズ修飾子。 アドレス引数のデフォルト サイズを解除して、サイズを以下のように設定します。

  • N = near ポインタ
  • F = far ポインタ

[h|l|L]

(省略可能)

引数型修飾子。 アドレス引数のデフォルト型を解除して、型を以下のように設定します。

  • h = short int
  • l = long int(type_char で整数変換が指定される場合)
  • l = double(type_char で浮動小数点変換が指定される場合)
  • L = long double(浮動小数点変換の場合のみ有効)

type_char

(必須)

型文字


関連項目