sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l
서식이 지정 된 문자열에서 데이터를 읽기.이러한 버전의 있습니다 sscanf, _sscanf_l, swscanf, _swscanf_l 와 보안 기능 향상에 설명 된 대로 CRT의 보안 기능.
int sscanf_s(
const char *buffer,
const char *format [,
argument ] ...
);
int _sscanf_s_l(
const char *buffer,
const char *format,
locale_t locale [,
argument ] ...
);
int swscanf_s(
const wchar_t *buffer,
const wchar_t *format [,
argument ] ...
);
int _swscanf_s_l(
const wchar_t *buffer,
const wchar_t *format,
locale_t locale [,
argument ] ...
);
매개 변수
buffer
저장 된 데이터format
컨트롤 서식 문자열입니다.자세한 내용은 형식 사양을.argument
선택적 인수locale
사용 하는 로케일
반환 값
각이 함수를 성공적으로 변환 하 고 지정 된 필드 수를 반환 합니다. 반환 값이 지정 되었지만 읽을 필드는 포함 되지 않습니다.반환 값이 0 이면 필드가 없는 할당 된 나타냅니다.반환 값이 EOF 오류에 대 한 첫 번째 변환 전에 문자열의 끝에 도달 하는 경우.
경우 buffer 또는 format 되는 NULL 포인터를 잘못 된 매개 변수 처리기 호출에서에 설명 된 대로 매개 변수 유효성 검사.실행 계속 수 있으면 이러한 함수-1을 반환 하 고 설정 errno 에EINVAL
이러한 문제 및 기타 오류 코드에 대 한 내용은 _doserrno, errno, _sys_errlist, 및 _sys_nerr.
설명
sscanf_s 함수에서 데이터를 읽고 buffer 각각 사용 하 여 지정 된 위치에 argument.형식 지정자에 해당 하는 형식으로 포인터 변수를 지정 하는 형식 문자열의 인수가 format.보안 수준이 낮은 버전과 달리 sscanf, 버퍼 크기 매개 변수는 형식 필드 문자를 사용 하는 경우 반드시 c, C, s, S 및 [.문자 버퍼 크기를 추가 매개 변수로 필요한 각 버퍼 후 제공 되어야 합니다.자세한 내용은 scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l 및 scanf 형식 필드 문자을 참조하십시오.
[!참고]
크기 매개 변수의 형식이 unsigned, 않습니다 size_t.
format 해석 하는 입력 필드와 같은 가진 인수 컨트롤 형성 하 고 작동 하는 format 인수에는 scanf_s 함수.중복 문자열 사이 복사 사용 하는 경우 동작이 정의 되지 않습니다.
swscanf_s와이드 문자 버전입니다 sscanf_s; 인수를 swscanf_s 와이드 문자 문자열입니다.sscanf_s멀티 바이트 문자를 처리 하지 않습니다.swscanf_s전체 폭 유니코드 16 진수 또는 "호환성 영역" 문자를 처리 하지 않습니다.그렇지 않으면 swscanf_s 및 sscanf_s 동일 하 게 동작 합니다.
버전으로 이러한 함수는 _l 접미사는 현재 스레드의 로캘 대신 전달 된 로캘 매개 변수를 사용할 경우를 제외 하 고 동일 합니다.
일반 텍스트 루틴 매핑
TCHAR입니다.H 루틴 |
_UNICODE 및 _Mbcs가 정의 되지 않았습니다. |
_Mbcs가 정의 |
_Unicode가 정의 |
---|---|---|---|
_stscanf_s |
sscanf_s |
sscanf_s |
swscanf_s |
_stscanf_s_l |
_sscanf_s_l |
_sscanf_s_l |
_swscanf_s_l |
요구 사항
루틴 |
필수 헤더 |
---|---|
sscanf_s, _sscanf_s_l |
<stdio.h> |
swscanf_s, _swscanf_s_l |
<stdio.h> 또는 <wchar.h> |
추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.
예제
// crt_sscanf_s.c
// This program uses sscanf_s to read data items
// from a string named tokenstring, then displays them.
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
char tokenstring[] = "15 12 14...";
char s[81];
char c;
int i;
float fp;
// Input various data from tokenstring:
// max 80 character string plus NULL terminator
sscanf_s( tokenstring, "%s", s, _countof(s) );
sscanf_s( tokenstring, "%c", &c, sizeof(char) );
sscanf_s( tokenstring, "%d", &i );
sscanf_s( tokenstring, "%f", &fp );
// Output the data read
printf_s( "String = %s\n", s );
printf_s( "Character = %c\n", c );
printf_s( "Integer: = %d\n", i );
printf_s( "Real: = %f\n", fp );
}
해당 .NET Framework 항목
참조 하십시오 Parse 메서드 같은 System::Double::Parse.
참고 항목
참조
fscanf, _fscanf_l, fwscanf, _fwscanf_l
scanf, _scanf_l, wscanf, _wscanf_l