_cgets, _cgetws_cgets, _cgetws

콘솔에서 문자열을 가져옵니다.Gets a character string from the console. 이러한 함수의 더 안전한 버전을 사용할 수 있습니다. _cgets_s, _cgetws_s를 참조하세요.More secure versions of these functions are available; see _cgets_s, _cgetws_s.


이러한 함수는 사용되지 않습니다.These functions are obsolete. Visual Studio 2015부터 CRT에서 사용할 수 없습니다.Beginning in Visual Studio 2015, they are not available in the CRT. 이러한 함수의 안전한 버전인 _cgets_s 및 _cgetws_s는 계속 사용할 수 있습니다.The secure versions of these functions, _cgets_s and _cgetws_s, are still available. 이러한 대체 함수에 대한 자세한 내용은 _cgets_s, _cgetws_s를 참조하세요.For information on these alternative functions, see _cgets_s, _cgetws_s.


이 API는 Windows 런타임에서 실행되는 응용 프로그램에서 사용할 수 없습니다.This API cannot be used in applications that execute in the Windows Runtime. 자세한 내용은 /ZW에서 지원하지 않는 CRT 함수를 참조하세요.For more information, see CRT functions not supported with /ZW.


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  

매개 변수Parameters

데이터의 저장소 위치입니다.Storage location for data.

반환 값Return Value

_cgets_cgetwsbuffer[2]에서 문자열의 시작에 대한 포인터를 반환합니다._cgets and _cgetws return a pointer to the start of the string, at buffer[2]. bufferNULL인 경우 이러한 함수는 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기를 호출합니다.If buffer is NULL, these functions invoke the invalid parameter handler, as described in Parameter Validation. 계속해서 실행하도록 허용된 경우, 이러한 함수는 NULL 을 반환하고 errnoEINVAL로 설정합니다.If execution is allowed to continue, they return NULL and set errno to EINVAL.


이러한 함수는 콘솔에서 문자열을 읽고 문자열과 해당 길이를 buffer가 가리키는 위치에 저장합니다.These functions read a string of characters from the console and store the string and its length in the location pointed to by buffer. buffer 매개 변수는 문자 배열에 대한 포인터여야 합니다.The buffer parameter must be a pointer to a character array. 배열의 첫 번째 요소인 buffer[0]에는 읽을 문자열의 최대 길이(문자)가 포함되어야 합니다.The first element of the array, buffer[0], must contain the maximum length (in characters) of the string to be read. 배열에 문자열, 종료 null 문자('\0') 및 추가 2바이트를 저장하는 데 충분한 요소가 포함되어야 합니다.The array must contain enough elements to hold the string, a terminating null character ('\0'), and 2 additional bytes. 함수는 CR-LF(캐리지 리턴-줄 바꿈) 조합이나 지정된 개수의 문자를 읽을 때까지 문자를 읽습니다.The function reads characters until a carriage return-line feed (CR-LF) combination or the specified number of characters is read. buffer[2]부터 시작하여 문자열이 저장됩니다.The string is stored starting at buffer[2]. 함수는 CR-LF를 읽을 경우 null 문자('\0')를 저장합니다.If the function reads a CR-LF, it stores the null character ('\0'). 그런 다음 문자열의 실제 길이를 두 번째 배열 요소인 buffer[1]에 저장합니다.The function then stores the actual length of the string in the second array element, buffer[1].

콘솔 창에 있는 동안 _cgets 또는 _cgetws 를 호출한 경우 모든 편집 키가 활성 상태이기 때문에 F3 키를 누르면 마지막으로 입력한 항목이 반복됩니다.Because all editing keys are active when _cgets or _cgetws is called while in a console window, pressing the F3 key repeats the last entered entry.

C++에서 이러한 함수는 보다 최신의 보안 대응 함수를 호출하는 템플릿 오버로드를 갖고 있습니다.In C++, these functions have template overloads that invoke the newer, secure counterparts of these functions. 자세한 내용은 Secure Template Overloads을 참조하세요.For more information, see Secure Template Overloads.

제네릭 텍스트 루틴 매핑Generic-Text Routine Mappings

Tchar.h 루틴Tchar.h routine _UNICODE 및 _MBCS 정의되지 않음_UNICODE and _MBCS not defined _MBCS 정의됨_MBCS defined _UNICODE 정의됨_UNICODE defined
_cgetts _cgets _cgets _cgetws

요구 사항Requirements

루틴에서 반환된 값Routine 필수 헤더Required header
_cgets <conio.h><conio.h>
_cgetws <conio.h> 또는 <wchar.h><conio.h> or <wchar.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.For more compatibility information, see Compatibility.


// 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);  
      printf( "\nLine length = %d\nText = %s\n",  
              buffer[1], result );  

      A line of input.Input line of text, followed by carriage return:  
Line Length = 16  
Text = A line of input.  

참고 항목See Also

콘솔 및 포트 I/O Console and Port I/O
_getch, _getwch_getch, _getwch