scanf 関数の型フィールド文字
次の情報は関数の scanf ファミリにscanf_s などの安全なバージョンが適用します。
type の文字は必要な書式の唯一のフィールドです ; これは省略可能なファイル形式のフィールドの後に表示されます。type の文字はの引数が文字文字列数値として解釈するかどうかを判定します。
scanf 関数の型文字
文字 |
扱う入力の型 |
引数の型 |
安全なバージョンのサイズ引数。 |
---|---|---|---|
c |
文字scanf 機能を使用するとバイト文字を指定します ; wscanf 機能を使用するとワイド文字を指定します。通常空白文字はスキップ c を指定すると読み込まれます。次の空白以外の文字を読み取るには%1s を使用してください ; 次の空白のワイド文字を読み取るには%1ws を使用します。 |
scanf して使用した場合 char へのポインターが wchar_t に wscanf を使用するとポインターとして機能します。 |
必ず指定します。サイズは終端文字 NULL 用の領域は含まれません。 |
C |
オブジェクトのサイズの文字。scanf 機能を使用するとワイド文字を指定します ; wscanf 機能を使用するとバイト文字を指定します。通常空白文字はスキップ C を指定すると読み込まれます。次の空白以外の文字を読み取るには%1s を使用してください ; 次の空白のワイド文字を読み取るには%1ws を使用します。 |
scanf して使用した場合 wchar_t へのポインターが char に wscanf を使用するとポインターとして機能します。 |
必ず指定します。サイズ引数には終端文字 NULL 用の領域は含まれません。 |
d |
10 進整数。 |
int へのポインター。 |
いいえ。 |
i |
整数。文字列が 「 0 " で始まる場合は入力文字列が 「 0x 」または 「 0X 」で始まる場合は16 進数8 進数16 は 10。 |
int へのポインター。 |
いいえ。 |
o |
8 バイト整数。 |
int へのポインター。 |
いいえ。 |
u |
符号なし 10 進整数。 |
unsignedint への ポインター。 |
いいえ。 |
x |
16 進数の整数です。 |
int へのポインター。 |
いいえ。 |
e, E, f, g, G |
オプションの符号のどちらと ()一連の小数点を含む一つ以上の 10 進数およびオプションの指数 (「 E 」または 「 e 」で構成される) 浮動小数点値と符号付き整数値によりオプションでいます。 |
float へのポインター。 |
いいえ。 |
n |
ストリームまたはバッファーから読み込まれる入力はありません。 |
正常にストリームまたはバッファー現在の呼び出しから scanfそれまでの関数または wscanf の関数に読み込まれた文字に格納された値はint へのポインター。 |
いいえ。 |
s |
最初の空白文字 (スペースタブまたは改行) までの文字列。空白文字で区切られていない文字列を読み取るときは scanf 関数の文字幅指定 に説明されているように角かっこ ()[] の設定を使用します。 |
scanf 機能を使用するとマルチバイト文字の配列を示しています ; wscanf 機能を使用すると文字配列を示します。いずれの場合も文字配列に自動的に追加されます null 文字と終了の入力フィールドに対して十分な大きさが必要です。 |
必ず指定します。サイズは終端文字 NULL 用の領域が含まれます。 |
S |
最初の空白文字 (スペースタブまたは改行) までオブジェクトのサイズの文字列。空白文字で区切られていない文字列を読み取るときは scanf 関数の文字幅指定 に説明されているように角かっこ ()[] の設定を使用します。 |
scanf 機能を使用すると文字配列を示しています ; wscanf 機能を使用すると文字配列を示します。いずれの場合も文字配列に自動的に追加されます null 文字と終了の入力フィールドに対して十分な大きさが必要です。 |
必ず指定します。サイズは終端文字 NULL 用の領域が含まれます。 |
a と A の指定子 (printf 関数の型フィールド文字 を参照してください) scanf では使用できません。
サイズ引数は必要に応じてに加えて引数に続くパラメーター リストで渡す必要があります。コード例を次に示します。
char string1[11], string2[9];
scanf("%10s %8s", string1, 11, string2, 9);
string1 に 10 の最大長の文字列string2 に 8 の最大長の文字列を読み取ります。バッファーのサイズは空間が終端文字 NULL 用に予約する必要があるため幅指定よりも 1 文字以上必要があります。
書式指定文字列はバイトを処理できます。または関数のバイト文字またはワイド文字バージョンが使用されるかはワイド文字に関係なくされます。したがってscanf の関数と wscanf の関数のバイト文字またはワイドを使用する書式指定子を次のようにします。
文字列を読み込むようにするには |
この関数を使用します。 |
これらの書式指定子を使って |
---|---|---|
バイト |
scanf 関数 |
c、hc、または hC |
バイト |
wscanf 関数 |
C、hc、または hC |
幅 |
wscanf 関数 |
c、lc、または lC |
幅 |
scanf 関数 |
C、lc、または lC |
scanf の関数の文字列および wscanf の関数を確認するにはc と C ではなくファイル形式の型指定子 s と S を持つ上のテーブルを使用します。