다음을 통해 공유


_cscanf, _cscanf_l, _cwscanf_cwscanf_l

콘솔에서 형식이 지정된 데이터를 읽습니다. 이러한 함수의 더 안전한 버전을 사용할 수 있습니다. 참조 _cscanf_s, _cscanf_s_l, _cwscanf_s_cwscanf_s_l.

참고 항목

Visual Studio 2015 printf 에서 함수 및 scanf 제품군이 선언 inline 되고 헤더로 <conio.h> 이동 <stdio.h> 되었습니다. 이전 코드를 마이그레이션하는 경우 이러한 함수와 관련하여 링커 오류 LNK2019 표시될 수 있습니다. 자세한 내용은 Visual C++ 변경 기록 2003 - 2015를 참조하세요.

Important

이 API는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다. 자세한 내용은 유니버설 Windows 플랫폼 앱에서 지원되지 않는 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입니다. EOF 운영 체제 명령줄 수준에서 키보드 입력이 리디렉션될 때도 반환할 수 있습니다. 반환 값이 0이면 필드가 할당되지 않았습니다.

설명

_cscanf 함수는 콘솔의 데이터를 argument에 의해 지정된 위치로 직접 읽습니다. 이 _getche 함수는 문자를 읽는 데 사용됩니다. 각 선택적 매개 변수는 format의 형식 지정자에 해당하는 형식의 변수에 대한 포인터여야 합니다. 형식은 입력 필드의 해석을 제어하고 함수의 매개 변수와 동일한 형식과 함수 format 를 가합니다 scanf . 일반적으로 입력 문자를 에코하는 동안 _cscanf 마지막 호출 _ungetch이 인 경우에는 그렇지 않습니다.

이 함수는 해당 매개 변수의 유효성을 검사합니다. 형식이NULL면 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다. 계속해서 실행하도록 허용된 경우 errnoEINVAL 로 설정되고 함수에서 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
Enter three integers: 1 2 3
You entered 3 2 1

참고 항목

콘솔 및 포트 I/O
_cprintf, _cprintf_l, _cwprintf_cwprintf_l
fscanf, _fscanf_l, fwscanf_fwscanf_l
scanf_s, _scanf_s_l, wscanf_s_wscanf_s_l
sscanf, _sscanf_l, swscanf_swscanf_l