다음을 통해 공유


_snscanf_s, _snscanf_s_l, _snwscanf_s, _snwscanf_s_l

문자열에서 지정된 길이의 서식이 지정된 데이터를 읽습니다. CRT의 보안 기능에 설명된 대로 보안 향상 기능이 포함된 _snscanf, _snscanf_l, _snwscanf, _snwscanf_l 버전입니다.

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

매개 변수

  • input
    검사할 입력 문자열입니다.

  • length
    검사할 input의 문자 수입니다.

  • format
    하나 이상의 형식 지정자입니다.

  • ... (optional)
    format의 형식 지정에 의해 입력 문자열로부터 추출된 값을 저장하는 데에 사용되는 변수입니다.

  • locale
    사용할 로캘입니다.

반환 값

해당 함수는 모두 성공적으로 변환, 배정된 필드 수를 반환합니다. 이때 읽기는 되었지만 지정되지 않은 필드는 반환 값에 포함되지 않습니다. 반환 값 0은 어떤 필드도 할당되지 않았음을 나타냅니다. 오류가 발생하거나 첫 번째 변환 전에 문자열의 끝에 도달할 경우 반환 값은 EOF입니다. 자세한 내용은 sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l을 참조하십시오.

매개 변수 유효성 검사에 설명된 대로 input 또는 format이 NULL 포인터인 경우 잘못된 매개 변수 처리기가 호출됩니다. 계속해서 실행하도록 허용된 경우, 이러한 함수는 EOF를 반환하고 errno를 EINVAL로 설정합니다.

이러한 오류 코드 및 기타 오류 코드에 대한 자세한 내용은 _doserrno, errno, _sys_errlist 및 _sys_nerr을 참조하십시오.

설명

이 함수는 sscanf_s와 비슷하지만 입력된 문자열로부터 검사하기 위한 고정된 숫자의 문자를 지정하는 기능을 제공한다는 점이 다릅니다. 자세한 내용은 sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l을 참조하십시오.

형식 필드 문자 c, C, s, S, 및 [가 요구되는 버퍼 크기 매개 변수입니다. 자세한 내용은 scanf 형식 필드 문자을 참조하십시오.

참고

이 크기 매개 변수는 size_t이 아닌 unsigned 형식입니다.

_l 접미사가 있는 이러한 함수 버전은 현재 스레드 로캘 대신 전달된 로캘 매개 변수를 사용하는 경우를 제외하고는 동일합니다.

제네릭 텍스트 라우팅 매핑

Tchar.h 루틴

_UNICODE 및 _MBCS 정의되지 않음

_MBCS 정의됨

_UNICODE 정의됨

_sntscanf_s

_snscanf_s

_snscanf_s

_snwscanf_s

_sntscanf_s_l

_snscanf_s_l

_snscanf_s_l

_snwscanf_s_l

요구 사항

루틴

필수 헤더

_snscanf_s, _snscanf_s_l

<stdio.h>

_snwscanf_s, _snwscanf_s_l

<stdio.h> 또는 <wchar.h>

호환성에 대한 자세한 내용은 소개 단원의 호환성 부분을 참조하십시오.

예제

// 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);
}
  

해당 .NET Framework 항목

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

참고 항목

참조

scanf 너비 사양