_snscanf、_snscanf_l、_snwscanf、_snwscanf_l_snscanf, _snscanf_l, _snwscanf, _snwscanf_l

指定した長さの書式付きデータを文字列から読み出します。Reads formatted data of a specified length from a string. これらの関数のセキュリティを強化したバージョンを使用できます。「_snscanf_s、_snscanf_s_l、_snwscanf_s、_snwscanf_s_l」をご覧ください。More secure versions of these functions are available; see _snscanf_s, _snscanf_s_l, _snwscanf_s, _snwscanf_s_l.

構文Syntax

int __cdecl _snscanf(
   const char * input,
   size_t length,
   const char * format,
   ...
);
int __cdecl _snscanf_l(
   const char * input,
   size_t length,
   const char * format,
   locale_t locale,
   ...
);
int __cdecl _snwscanf(
   const wchar_t * input,
   size_t length,
   const wchar_t * format,
   ...
);
int __cdecl _snwscanf_l(
   const wchar_t * input,
   size_t length,
   const wchar_t * format,
   locale_t locale,
   ...
);

パラメーターParameters

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

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

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

......
書式指定子によって入力文字列から抽出された値の格納に使用される省略可能な変数形式します。Optional variables that will be used to store the values extracted from the input string by the format specifiers in format.

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

戻り値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 を参照してくださいFor more information, see sscanf.

場合入力または形式は、 NULLポインター、または長さと同じかそれよりも少ない対 0 の場合は、無効なパラメーター ハンドラーが呼び出される、として説明されているパラメーターの検証です。If input or format is a NULL pointer, or if length is less than or equal to zero, 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する点を除いて、入力文字列から確認する文字の固定数を指定できるようになります。This function is like sscanf except that it provides the ability to specify a fixed number of characters to examine from the input string. 詳細については、sscanf を参照してくださいFor more information, see sscanf.

これらの関数のバージョン、 _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_sntscanf _snscanf_snscanf _snscanf_snscanf _snwscanf_snwscanf
_sntscanf_l_sntscanf_l _snscanf_l_snscanf_l _snscanf_l_snscanf_l _snwscanf_l_snwscanf_l

必要条件Requirements

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

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

Example

// crt_snscanf.c
// compile with: /W3

#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( str1, 6,  "%s %f", s1, &fp); // C4996
   // Note: _snscanf is deprecated; consider using _snscanf_s instead
   printf("_snscanf converted %d fields: ", i);
   printf("%s and %f\n", s1, fp);

   i = _snwscanf( str2, 6,  L"%s %f", s2, &fp); // C4996
   // Note: _snwscanf is deprecated; consider using _snwscanf_s instead
   wprintf(L"_snwscanf converted %d fields: ", i);
   wprintf(L"%s and %f\n", s2, fp);
}
_snscanf converted 2 fields: 15 and 12.000000
_snwscanf converted 2 fields: 15 and 12.000000

関連項目See also

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