_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
하나 이상의 형식 지정자입니다.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.

설명Remarks

이 함수는 같은 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.

버퍼 크기 매개 변수는 형식 필드 문자를 사용 하 여 필수 c, C합니다 sS, 및 [ .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.

참고

크기 매개 변수는 형식 unsigned가 아닌 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