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

次の情報は、 scanf など、安全なバージョンを含む scanf_s関数ファミリのいずれかに適用されます。The following information applies to any of the scanf family of functions, including the secure versions, such as scanf_s.

type 文字だけが必須の書式フィールドであり、任意の省略可能な書式フィールドをその後に続けて指定します。The type character is the only required format field; it appears after any optional format fields. type 文字は、関連付けられた引数が、文字、文字列、または数として解釈されるかどうかを決定します。The type character determines whether the associated argument is interpreted as a character, string, or number.

Scanf 関数の型文字Type Characters for scanf functions

文字Character 必要な入力の型Type of input expected 引数の型Type of argument 安全なバージョンのサイズ引数ですか。Size argument in secure version?
c 文字です。Character. scanf 関数で使用する場合は 1 バイト文字を指定し、 wscanf 関数で使用する場合はワイド文字を指定します。When used with scanf functions, specifies single-byte character; when used with wscanf functions, specifies wide character. 空白文字は通常はスキップされますが、 c が指定されている場合は読み取られます。White-space characters that are ordinarily skipped are read when c is specified. 次の空白以外の 1 バイト文字を読み取るには %1s を使用し、次の空白以外のワイド文字を読み取るには %1ws を使用します。To read next non-white-space single-byte character, use %1s; to read next non-white-space wide character, use %1ws. char へのポインターは scanf 関数で使用され、 wchar_t へのポインターは wscanf 関数で使用されます。Pointer to char when used with scanf functions, pointer to wchar_t when used with wscanf functions. 必須です。Required. サイズには null 終端文字のスペースは含まれません。Size does not include space for a null terminator.
C 反対のサイズ文字です。Opposite size character. scanf 関数で使用する場合はワイド文字を指定し、 wscanf 関数で使用する場合は 1 バイト文字を指定します。When used with scanf functions, specifies wide character; when used with wscanf functions, specifies single-byte character. 空白文字は通常はスキップされますが、 C が指定されている場合は読み取られます。White-space characters that are ordinarily skipped are read when C is specified. 次の空白以外の 1 バイト文字を読み取るには %1s を使用し、次の空白以外のワイド文字を読み取るには %1ws を使用します。To read next non-white-space single-byte character, use %1s; to read next non-white-space wide character, use %1ws. wchar_t へのポインターは scanf 関数で使用され、 char へのポインターは wscanf 関数で使用されます。Pointer to wchar_t when used with scanf functions, pointer to char when used with wscanf functions. 必須です。Required. サイズ引数には null 終端文字のスペースは含まれません。Size argument does not include space for a null terminator.
d 10 進整数です。Decimal integer. intへのポインターです。Pointer to int. いいえ。No.
i 整数。An integer. 入力文字列が "0x" または "0X" で始まる場合は 16 進数、文字列が "0" で始まる場合は 8 進数、それ以外の場合は 10 進数です。Hexadecimal if the input string begins with "0x" or "0X", octal if the string begins with "0", otherwise decimal. intへのポインターです。Pointer to int. いいえ。No.
o 8 進数です。Octal integer. intへのポインターです。Pointer to int. いいえ。No.
p 16 進数のポインター アドレス。A pointer address in hexadecimal digits. 読み取る最大桁数は、コンピューターのアーキテクチャによって異なるポインターのサイズ (32 ビットまたは 64 ビット) に依存します。The maximum number of digits read depends on the size of a pointer (32 or 64 bits), which depends on the machine architecture. "0x" または "0X" はプレフィックスとして受け入れられます。"0x" or "0X" are accepted as prefixes. void*へのポインターです。Pointer to void*. いいえ。No.
u 符号なし 10 進整数。Unsigned decimal integer. unsigned intへのポインターです。Pointer to unsigned int. いいえ。No.
x 16 進整数です。Hexadecimal integer. intへのポインターです。Pointer to int. いいえ。No.
e, E, f, F, g, Ge, E, f, F, g, G 次の順序で構成される浮動小数点の値です。省略可能な符号 (+ または -)、小数点のある一連の 10 進数、省略可能な指数 ("e" または "E") とそれに続く省略可能な符号付き整数値。Floating-point value consisting of optional sign (+ or -), series of one or more decimal digits containing decimal point, and optional exponent ("e" or "E") followed by an optionally signed integer value. floatへのポインターです。Pointer to float. いいえ。No.
aAa, A 次の順序で構成される浮動小数点の値です。小数点 (省略可能) のある一連の 16 進数、指数 ("p" または "P") とそれに続く 10 進数の値。Floating-point value consisting of a series of one or more hexadecimal digits containing an optional decimal point, and an exponent ("p" or "P") followed by a decimal value. floatへのポインターです。Pointer to float. いいえ。No.
n ストリームまたはバッファーからの入力は読み取られません。No input read from stream or buffer. intへのポインターであり、そこには scanf 関数または wscanf 関数への呼出しまでストリームまたはバッファーから読み取られた文字数が格納されます。Pointer to int, into which is stored number of characters successfully read from stream or buffer up to that point in current call to scanf functions or wscanf functions. いいえ。No.
s 最初の空白文字 (スペース、タブ、または改行) までの文字列。String, up to first white-space character (space, tab or newline). スペースで区切られていない文字列を読み取るには、「[ ]」で説明したように、角かっこのセット ( [ ]関数ファミリのいずれかに適用されます。To read strings not delimited by space characters, use set of square brackets ([ ]), as discussed in scanf Width Specification. scanf 関数で使用する場合は 1 バイト文字配列を意味し、 wscanf 関数で使用する場合はワイド文字配列を意味します。When used with scanf functions, signifies single-byte character array; when used with wscanf functions, signifies wide-character array. どちらの場合も、文字配列は入力フィールドと自動的に追加される終端の null 文字に十分な大きさにする必要があります。In either case, character array must be large enough for input field plus terminating null character, which is automatically appended. 必須です。Required. サイズには null 終端文字のスペースが含まれます。Size includes space for a null terminator.
S 最初の空白文字 (スペース、タブ、または改行) までの反対のサイズ文字列。Opposite-size character string, up to first white-space character (space, tab or newline). 空白文字で区切られていない文字列を読み取るには、「scanf Width Specification」(scanf 関数の文字幅指定) の説明にあるように、角かっこのセット ([ ]) を使用します。To read strings not delimited by space characters, use set of square brackets ([ ]), as discussed in scanf Width Specification. scanf 関数で使用する場合はワイド文字配列を意味し、wscanf 関数で使用する場合は 1 バイト文字配列を意味します。When used with scanf functions, signifies wide-character array; when used with wscanf functions, signifies single-byte-character array. どちらの場合も、文字配列は入力フィールドと自動的に追加される終端の null 文字に十分な大きさにする必要があります。In either case, character array must be large enough for input field plus terminating null character, which is automatically appended. 必須です。Required. サイズには null 終端文字のスペースが含まれます。Size includes space for a null terminator.

必要であれば、サイズ引数は、その引数が適用される引数のすぐ後のパラメーター リストに渡されます。The size arguments, if required, should be passed in the parameter list immediately following the argument they apply to. コード例を次に示します。For example, the following code:

char string1[11], string2[9];
scanf_s("%10s %8s", string1, 11, string2, 9);

10 文字までの文字列を string1で読み取り、8 文字までの文字列を string2で読み取ります。reads a string with a maximum length of 10 into string1, and a string with a maximum length of 8 into string2. バッファー サイズは、null 終端文字用にスペースが予約されるため、幅指定より 1 つ以上大きくする必要があります。The buffer sizes should be at least one more than the width specifications since space must be reserved for the null terminator.

書式指定文字列は、1 バイト文字とワイド文字のどちらの関数バージョンが使用されているかに関係なく、1 バイト文字またはワイド文字の入力を処理できます。The format string can handle single-byte or wide character input regardless of whether the single-byte character or wide-character version of the function is used. したがって、 scanf 関数と wscanf 関数で 1 バイト文字とワイド文字を読み取るには、次のように書式指定子を使用します。Thus, to read single-byte or wide characters with scanf functions and wscanf functions, use format specifiers as follows.

文字を次のように読み取る場合To read character as この関数を使用します。Use this function 書式指定子は次のとおりです。With these format specifiers
1 バイトsingle byte scanf 関数scanf functions chc、または hCc, hc, or hC
1 バイトsingle byte wscanf 関数wscanf functions Chc、または hCC, hc, or hC
ワイドwide wscanf 関数wscanf functions clc、または lCc, lc, or lC
ワイドwide scanf 関数scanf functions Clc、または lCC, lc, or lC

scanf 関数と wscanf 関数で文字列をスキャンするには、型指定子 sS ではなく、 cCで上記の表を使用します。To scan strings with scanf functions, and wscanf functions, use the above table with format type-specifiers s and S instead of c and C.

関連項目See also

scanf、_scanf_l、wscanf、_wscanf_lscanf, _scanf_l, wscanf, _wscanf_l