_cscanf, _cscanf_l, _cwscanf, _cwscanf_l
읽기 콘솔에서 데이터를 포맷합니다. 이러한 기능의 더 안전한 버전을 사용할 수 있습니다. _cscanf_s, _cscanf_s_l, _cwscanf_s, _cwscanf_s_l를 참조하십시오.
중요
이 API는 Windows 런타임에서 실행되는 응용 프로그램에서 사용할 수 없습니다.자세한 내용은 /ZW에서 지원하지 않는 CRT 함수를 참조하십시오.
int _cscanf(
const char *format [,
argument] ...
);
int _cscanf_l(
const char *format,
locale_t locale [,
argument] ...
);
int _cwscanf(
const wchar_t *format [,
argument] ...
);
int _cwscanf_l(
const wchar_t *format,
locale_t locale [,
argument] ...
);
매개 변수
format
형식 컨트롤 문자열입니다.argument
선택적 매개 변수입니다.locale
사용할 로캘입니다.
반환 값
성공적으로 변환되어 할당된 필드 개수입니다. 반환 값을 읽지만 할당되지 않은 필드를 포함하지 않습니다. 반환 값은 파일의 끝에 읽기 위해 시도하는 EOF 입니다. 이 운영 체제의 명령줄 수준에서 키보드 입력을 리디렉션할 때 발생할 수 있습니다. 반환 값 0은 어떤 필드도 할당되지 않았음을 의미합니다.
설명
이 _cscanf 함수는 argument 으로 주는 지정된 위치의 콘솔에서 데이터를 바로 읽습니다. 이 _getche 함수는 문자를 읽는데 사용합니다. 임의의 각 매개변수는 format에서 형식 지정자와 일치하는 특정 형식의 변수에 대한 포인터가 되어야 합니다. 형식은 입력 필드의 해석을 제어하고 scanf 함수의 format 인수와 동일한 폼과 함수를 가집니다. 이 _cscanf 가 정상적으로 입력된 문자를 반영하는 동안, _ungetch 의 마지막 호출에 하지 않게 됩니다.
이 함수는 해당 매개 변수의 유효성을 검사합니다. 포멧이 NULL인 경우 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다. 계속해서 실행하도록 허용된 경우, 이러한 함수는 errno 를 EINVAL 로 설정하고 EOF 을 반환합니다.
_l 접미사가 있는 이러한 함수 버전은 현재 스레드 로캘 대신 전달된 로캘 매개 변수를 사용하는 경우를 제외하고는 동일합니다.
제네릭 텍스트 라우팅 매핑
TCHAR.H 루틴 |
_UNICODE 및 _MBCS 정의되지 않음 |
_MBCS 정의됨 |
_UNICODE 정의됨 |
---|---|---|---|
_tcscanf |
_cscanf |
_cscanf |
_cwscanf |
_tcscanf_l |
_cscanf_l |
_cscanf_l |
_cwscanf_l |
요구 사항
루틴 |
필수 헤더 |
---|---|
_cscanf,_cscanf_l |
<conio.h> |
_cwscanf, _cwscanf_l |
<conio.h> 또는 <wchar.h> |
호환성 정보에 대한 자세한 내용은 호환성을 참조하십시오.
예제
// crt_cscanf.c
// compile with: /c /W3
/* This program prompts for a string
* and uses _cscanf to read in the response.
* Then _cscanf returns the number of items
* matched, and the program displays that number.
*/
#include <stdio.h>
#include <conio.h>
int main( void )
{
int result, i[3];
_cprintf_s( "Enter three integers: ");
result = _cscanf( "%i %i %i", &i[0], &i[1], &i[2] ); // C4996
// Note: _cscanf is deprecated; consider using _cscanf_s instead
_cprintf_s( "\r\nYou entered " );
while( result-- )
_cprintf_s( "%i ", i[result] );
_cprintf_s( "\r\n" );
}
입력
1 2 3
Output
Enter three integers: 1 2 3
You entered 3 2 1
참고 항목
참조
_cprintf, _cprintf_l, _cwprintf, _cwprintf_l
fscanf, _fscanf_l, fwscanf, _fwscanf_l