_snscanf_s、_snscanf_s_l、_snwscanf_s、_snwscanf_s_l_snscanf_s, _snscanf_s_l, _snwscanf_s, _snwscanf_s_l

指定した長さの書式付きデータを文字列から読み出します。Reads formatted data of a specified length from a string. これらは、「CRT のセキュリティ機能」の説明にあるとおり、セキュリティが強化されたバージョンの _snscanf、_snscanf_l、_snwscanf、_snwscanf_l です。These are versions of _snscanf, _snscanf_l, _snwscanf, _snwscanf_l with security enhancements as described in Security Features in the CRT.

構文Syntax

int __cdecl _snscanf_s(
   const char * input,
   size_t length,
   const char * format [, argument_list]
);
int __cdecl _snscanf_s_l(
   const char * input,
   size_t length,
   const char * format,
   locale_t locale [, argument_list]
);
int __cdecl _snwscanf_s(
   const wchar_t * input,
   size_t length,
   const wchar_t * format [, argument_list]
);
int __cdecl _snwscanf_s_l(
   const wchar_t * input,
   size_t length,
   const wchar_t * format,
   locale_t locale [, argument_list]
);

パラメーターParameters

inputinput
チェックする入力文字列。Input string to examine.

lengthlength
チェックする文字数入力します。Number of characters to examine in input.

formatformat
1 つまたは複数の書式指定子。One or more format specifiers.

localelocale
使用するロケール。The locale to use.

argument_listargument_list
書式設定文字列に従って割り当てられるオプションの引数。Optional arguments to be assigned according to the format string.

戻り値Return Value

これらの関数は、正常に変換および代入されたフィールドの数を返します。読み込まれただけで代入されなかったフィールドは戻り値には含まれません。Both of these functions returns the number of fields successfully converted and assigned; the return value does not include fields that were read but not assigned. 戻り値が 0 の場合は、代入されたフィールドがなかったことを示します。A return value of 0 indicates that no fields were assigned. 戻り値はEOFエラーの最初の変換の前に、文字列の末尾に達した場合またはします。The return value is EOF for an error or if the end of the string is reached before the first conversion. 詳細については、「sscanf_s、_sscanf_s_l、swscanf_s、_swscanf_s_l」を参照してください。For more information, see sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l.

場合入力または形式は、 NULL 」の説明に従って、ポインター、無効なパラメーター ハンドラーが呼び出されるパラメーターの検証です。If input or format is a NULL pointer, the invalid parameter handler is invoked, as described in Parameter Validation. これらの関数を返すかどうかは、引き続き実行が許可された、 EOF設定とerrnoEINVALします。If execution is allowed to continue, these functions return EOF and set errno to EINVAL.

エラー コードの詳細については、「_doserrno、errno、_sys_errlist、_sys_nerr」をご覧ください。For information about these and other error codes, see _doserrno, errno, _sys_errlist, and _sys_nerr.

RemarksRemarks

この関数はsscanf_sする点を除いて、入力文字列から確認する文字の固定数を指定できるようになります。This function is like sscanf_s except that it provides the ability to specify a fixed number of characters to examine from the input string. 詳細については、「sscanf_s、_sscanf_s_l、swscanf_s、_swscanf_s_l」を参照してください。For more information, see sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l.

パラメーターのバッファー サイズが、型フィールド文字で必要なcCsS、および [.The buffer size parameter is required with the type field characters c, C, s, S, and [. 詳細については、「scanf 関数の型フィールド文字」を参照してください。For more information, see scanf Type Field Characters.

注意

型のサイズのパラメーターが符号なしではなく、 size_tします。The size parameter is of type unsigned, not size_t.

これらの関数のバージョン、 _l現在のスレッド ロケールの代わりに渡されたロケール パラメーターを使用する点を除いて、サフィックスは同じです。The versions of these functions with the _l suffix are identical except that they use the locale parameter passed in instead of the current thread locale.

汎用テキスト ルーチンのマップGeneric-Text Routine Mappings

Tchar.h のルーチンTchar.h routine _UNICODE および _MBCS が未定義の場合_UNICODE and _MBCS not defined _MBCS が定義されている場合_MBCS defined _UNICODE が定義されている場合_UNICODE defined
_sntscanf_s_sntscanf_s _snscanf_s_snscanf_s _snscanf_s_snscanf_s _snwscanf_s_snwscanf_s
_sntscanf_s_l_sntscanf_s_l _snscanf_s_l_snscanf_s_l _snscanf_s_l_snscanf_s_l _snwscanf_s_l_snwscanf_s_l

必要条件Requirements

ルーチンによって返される値Routine 必須ヘッダーRequired header
_snscanf_s_snscanf_s_l_snscanf_s, _snscanf_s_l <stdio.h><stdio.h>
_snwscanf_s_snwscanf_s_l_snwscanf_s, _snwscanf_s_l <stdio.h> または <wchar.h><stdio.h> or <wchar.h>

互換性の詳細については、「 互換性」を参照してください。For more compatibility information, see Compatibility.

Example

// crt_snscanf_s.c
// This example scans a string of
// numbers, using both the character
// and wide character secure versions
// of the snscanf function.

#include <stdio.h>

int main( )
{
    char        str1[] = "15 12 14...";
    wchar_t     str2[] = L"15 12 14...";
    char        s1[3];
    wchar_t     s2[3];
    int         i;
    float       fp;

    i = _snscanf_s( str1, 6,  "%s %f", s1, 3, &fp);
    printf_s("_snscanf_s converted %d fields: ", i);
    printf_s("%s and %f\n", s1, fp);

    i = _snwscanf_s( str2, 6,  L"%s %f", s2, 3, &fp);
    wprintf_s(L"_snwscanf_s converted %d fields: ", i);
    wprintf_s(L"%s and %f\n", s2, fp);
}
_snscanf_s converted 2 fields: 15 and 12.000000
_snwscanf_s converted 2 fields: 15 and 12.000000

関連項目See also

scanf 関数の文字幅指定scanf Width Specification