次の方法で共有


scanf 関数と wscanf 関数の書式指定フィールド

この情報はの scanf に安全なバージョンを含めての関数を適用しscanf の関数に指示するために使用するシンボルをプログラムの変数に挿入される値に scanf の入力ストリーム stdin などの入力ストリームを分析する方法について説明します。

書式指定に次のフォームがあります :

%*[] [] [h | l | ll | I64 | L{}]種類

format の引数は入力の解釈を指定し次の一つ以上を使用できます :

  • 空白文字 : null ("); タブ (\ t); または改行 (\ n)。空白文字を使用するとscanf 次の空白文字までの連続するすべての空白文字はストア読み取ります。形式の 1 個の空白文字が数値 (0 など) および入力の空白文字の組み合わせと一致します。

  • パーセント記号 (%) を除き空白以外の文字。空白文字と一致 scanf の空白文字はストア読み取ります。入力ストリームの次の文字が一致しない場合 scanf は終了します。

  • パーセント記号 (%) によって導入される書式の指定。書式指定により scanf は指定された型の値は入力の文字を読み込み変換します。値は引数リストの引数に代入します。

形式は左から右に読み込まれます。書式指定文字のいずれかが入力ストリームの文字シーケンスに一致すると見なされます ; 入力ストリームの一致文字が走査されますが保存されません。入力ストリームの文字が書式指定と競合する場合はscanf が終了し読まれなかったように文字が入力ストリームに保持されます。

最初の書式指定が検出されると最初の入力フィールドの値がこの仕様に従って変換され最初の argument で指定された場所に格納されます。2 番目の書式指定を 2 番目の入力フィールドを書式指定文字列の末尾から 2 番目の argument などに変換され格納されます。

入力フィールドはすべての文字と最初の空白文字 (スペースタブまたは改行) までまたは書式指定に応じて変換できないまたはフィールドの幅に達するまで最初の文字まで (指定されている場合) 定義されます。特定の固有の引数が多すぎる場合ある場合余分な引数が評価されますが無視されます。結果は書式指定するための十分な引数がない場合は予測できません。

書式指定の各フィールドに一つの文字または数字で特定の形式オプションを示します。最後の後に省略可能なファイル形式フィールドの表示 type 文字が入力フィールドには文字列または文字数として解釈するかどうかを判定します。

最も単純な書式指定がパーセント記号と type の文字を (%s) が含まれています。パーセント記号 (%) が書式指定文字として意味を持たない文字に続く場合その文字は次の文字が通常のシーケンスは入力文字列の先頭に一致させるシーケンス (次のパーセント記号まで) 処理されます。たとえば符号文字が入力されるように指定するには使用 %%。

指定した型のフィールドとして解釈される次の入力フィールドのパーセント記号の割り当ての後にアスタリスク (*)。フィールドが走査されますが保存されません。

関数の scanf ファミリの安全なバージョン (_s のサフィックスを使用) バッファー サイズ パラメーターは型 cCsS または [ の各パラメーターに従って渡す必要があります。関数の scanf ファミリの安全なバージョンの詳細についてはscanf_s、_scanf_s_l、wscanf_s、_wscanf_s_l を参照してください。

参照

関連項目

scanf 関数の文字幅指定

scanf 関数の型フィールド文字

scanf、_scanf_l、wscanf、_wscanf_l

scanf_s、_scanf_s_l、wscanf_s、_wscanf_s_l