다음을 통해 공유


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_lscanf 형식 필드 문자을 참조하십시오.

[!참고]

크기 매개 변수의 형식이 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.

참고 항목

참조

스트림 I/O

fscanf, _fscanf_l, fwscanf, _fwscanf_l

scanf, _scanf_l, wscanf, _wscanf_l

sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l

_snwprintf_l, _snwprintf, _snprintf_l, _snprintf