_cgets, _cgetws
콘솔에서 문자열을 가져옵니다.보다 안전한 버전의이 함수를 사용할 수 있습니다. see _cgets_s, _cgetws_s.
중요 |
---|
이 API는 Windows 런타임에서 실행 되는 응용 프로그램에서 사용할 수 없습니다.자세한 내용은 /zw에 지원 되는 CRT 함수. |
char *_cgets(
char *buffer
);
wchar_t *_cgetws(
wchar_t *buffer
);
template <size_t size>
char *_cgets(
char (&buffer)[size]
); // C++ only
template <size_t size>
wchar_t *_cgetws(
wchar_t (&buffer)[size]
); // C++ only
매개 변수
- buffer
데이터에 대 한 저장소 위치입니다.
반환 값
_cgets및 _cgetws 에서 문자열의 시작에 대 한 포인터를 반환 buffer[2].경우 buffer 는 NULL, 이러한 함수에 설명 된 대로 잘못 된 매개 변수 처리기를 호출 매개 변수 유효성 검사.실행을 계속 하도록 허용 된 경우, 반환 NULL 로 설정 하 고 errno 에 EINVAL.
설명
이러한 함수 콘솔에서 문자열을 읽고 문자열과 길이가가 가리키는 위치에 저장 buffer.buffer 매개 변수는 문자 배열에 대 한 포인터 이어야 합니다.배열의 첫 번째 요소 buffer[0], 문자 단위로 최대 길이의 문자열을 읽을 수 있어야 합니다.배열 문자열, 종료 null 문자 ('\0'), 및 2 추가 바이트를 저장할 충분 한 요소를 포함 해야 합니다.이 함수는 캐리지 return–line 바꿈 (CR-LF) 조합 또는 지정한 수의 문자를 읽을 때까지 문자를 읽습니다.시작 문자열 저장 된 buffer[2].함수 CR LF를 나타내면 null 문자 ('\0')를 저장 합니다.다음 문자열의 실제 길이 두 번째 배열 요소에 저장 buffer[1].
모든 편집 키를 활성화 되어 있기 때문에 _cgets 또는 _cgetws 콘솔에서 창에서 F3 키를 누르면 마지막으로 입력 한 항목 반복 이라고 합니다.
C + +에서는 이러한 함수 최신, 보안 대응 함수를 호출 하는 템플릿 오버 로드 되어 있습니다.자세한 내용은 보안 템플릿 오버 로드을 참조하십시오.
일반 텍스트 루틴 매핑
Tchar.h 루틴 |
_UNICODE 및 _mbcs가 정의 되어 있지 않습니다 |
_Mbcs가 정의 |
_Unicode가 정의 |
---|---|---|---|
_cgetts |
_cgets |
_cgets |
_cgetws |
요구 사항
루틴 |
필수 헤더 |
---|---|
_cgets |
<conio.h> |
_cgetws |
<conio.h> 또는 <wchar.h> |
자세한 호환성에 대 한 내용은 호환성 소개에서 합니다.
예제
// crt_cgets.c
// compile with: /c /W3
// This program creates a buffer and initializes
// the first byte to the size of the buffer. Next, the
// program accepts an input string using _cgets and displays
// the size and text of that string.
#include <conio.h>
#include <stdio.h>
#include <errno.h>
int main( void )
{
char buffer[83] = { 80 }; // Maximum characters in 1st byte
char *result;
printf( "Input line of text, followed by carriage return:\n");
// Input a line of text:
result = _cgets( buffer ); // C4996
// Note: _cgets is deprecated; consider using _cgets_s
if (!result)
{
printf( "An error occurred reading from the console:"
" error code %d\n", errno);
}
else
{
printf( "\nLine length = %d\nText = %s\n",
buffer[1], result );
}
}