_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를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.