_cscanf_s
, _cscanf_s_l
, _cwscanf_s
_cwscanf_s_l
콘솔에서 형식이 지정된 데이터를 읽습니다. 이러한 보다 안전한 버전의 < _cscanf_l
_cwscanf_l
_cwscanf
a0/>에는 CRT의 _cscanf
보안 기능에 설명된 대로 보안 기능이 향상되었습니다.
Important
이 API는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다. 자세한 내용은 유니버설 Windows 플랫폼 앱에서 지원되지 않는 CRT 함수를 참조하세요.
구문
int _cscanf_s(
const char *format [,
argument] ...
);
int _cscanf_s_l(
const char *format,
_locale_t locale [,
argument] ...
);
int _cwscanf_s(
const wchar_t *format [,
argument] ...
);
int _cwscanf_s_l(
const wchar_t *format,
_locale_t locale [,
argument] ...
);
매개 변수
format
형식 컨트롤 문자열입니다.
argument
선택적 매개 변수입니다.
locale
사용할 로캘입니다.
반환 값
성공적으로 변환되고 할당된 필드 수입니다. 반환 값에는 읽었으나 할당되지 않은 필드가 포함되지 않습니다. 반환 값은 파일의 끝에서 읽으려고 시도할 EOF
입니다. EOF
운영 체제 명령줄 수준에서 키보드 입력이 리디렉션될 때도 반환할 수 있습니다. 반환 값이 0이면 필드가 할당되지 않았습니다.
이러한 함수는 해당 함수 매개 변수의 유효성을 검사합니다. null 포인터인 경우 format
이러한 함수는 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기를 호출합니다. 실행을 계속하도록 허용된 경우 이러한 함수는 반환 EOF
되고 errno
로 설정 EINVAL
됩니다.
설명
_cscanf_s
함수는 콘솔의 데이터를 argument
에 의해 지정된 위치로 직접 읽습니다. 이 _getche
함수는 문자를 읽는 데 사용됩니다. 각 선택적 매개 변수는 format
의 형식 지정자에 해당하는 형식의 변수에 대한 포인터여야 합니다. 형식은 입력 필드의 해석을 제어하고 함수의 매개 변수와 동일한 형식과 함수 format
를 가합니다 scanf_s
. 일반적으로 입력 문자를 에코하는 동안 _cscanf_s
마지막 호출 _ungetch
이 인 경우에는 그렇지 않습니다.
패밀리의 다른 보안 버전과 scanf
마찬가지로 c, C, _cscanf_s
s, S 및 _cwscanf_s
[형식 필드 문자에 대한 크기 인수가 필요합니다. 자세한 내용은 scanf 너비 사양을 참조하세요.
참고 항목
크기 매개 변수는 size_t
가 아니라 unsigned
형식입니다.
_l
접미사가 있는 이러한 함수 버전은 현재 스레드 로캘 대신 전달된 로캘 매개 변수를 사용하는 경우를 제외하고는 동일합니다.
일반 텍스트 루틴 매핑
TCHAR.H 루틴 | _UNICODE 및 _MBCS 정의되지 않음 |
정의된 _MBCS |
정의된 _UNICODE |
---|---|---|---|
_tcscanf_s |
_cscanf_s |
_cscanf_s |
_cwscanf_s |
_tcscanf_s_l |
_cscanf_s_l |
_cscanf_s_l |
_cwscanf_s_l |
요구 사항
루틴에서 반환된 값 | 필수 헤더 |
---|---|
_cscanf_s , _cscanf_s_l |
<conio.h> |
_cwscanf_s , _cwscanf_s_l |
<conio.h> 또는 <wchar.h> |
호환성에 대한 자세한 내용은 호환성을 참조하세요.
라이브러리
모든 버전의 C 런타임 라이브러리입니다.
예시
// crt_cscanf_s.c
// compile with: /c
/* This program prompts for a string
* and uses _cscanf_s to read in the response.
* Then _cscanf_s returns the number of items
* matched, and the program displays that number.
*/
#include <stdio.h>
#include <conio.h>
int main( void )
{
int result, n[3];
int i;
result = _cscanf_s( "%i %i %i", &n[0], &n[1], &n[2] );
_cprintf_s( "\r\nYou entered " );
for( i=0; i<result; i++ )
_cprintf_s( "%i ", n[i] );
_cprintf_s( "\r\n" );
}
1 2 3
You entered 1 2 3
참고 항목
콘솔 및 포트 I/O
_cprintf
, _cprintf_l
, _cwprintf
_cwprintf_l
fscanf_s
, _fscanf_s_l
, fwscanf_s
_fwscanf_s_l
scanf_s
, _scanf_s_l
, wscanf_s
_wscanf_s_l
sscanf_s
, _sscanf_s_l
, swscanf_s
_swscanf_s_l