다음을 통해 공유


_cgets, _cgetws

콘솔에서 문자열을 가져옵니다. 이러한 함수의 더 안전한 버전을 사용할 수 있습니다. _cgets_s, _cgetws_s(을)를 참조하세요.

Important

이러한 함수는 사용되지 않습니다. Visual Studio 2015부터 CRT에서 사용할 수 없습니다. 이러한 함수의 안전한 버전인 _cgets_s 및 _cgetws_s는 계속 사용할 수 있습니다. 이러한 대체 함수에 대한 자세한 내용은 다음_cgetws_s을 참조하세요_cgets_s.

Important

이 API는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다. 자세한 내용은 유니버설 Windows 플랫폼 앱에서 지원되지 않는 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_cgetwsbuffer[2]에서 문자열의 시작에 대한 포인터를 반환합니다. 이 경우 buffer 이러한 함수는 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기를 호출합니다.NULL 계속해서 실행하도록 허용된 경우, 이러한 함수는 NULL 을 반환하고 errnoEINVAL로 설정합니다.

설명

이러한 함수는 콘솔에서 문자열을 읽고 문자열과 해당 길이를 buffer가 가리키는 위치에 저장합니다. buffer 매개 변수는 문자 배열에 대한 포인터여야 합니다. 배열의 첫 번째 요소인 buffer[0]에는 읽을 문자열의 최대 길이(문자)가 포함되어야 합니다. 배열에는 문자열을 저장할 수 있는 충분한 요소, 종료 null 문자('\0') 및 2개의 추가 바이트가 포함되어야 합니다. 함수는 CR-LF(캐리지 리턴-줄 바꿈) 조합이나 지정된 개수의 문자를 읽을 때까지 문자를 읽습니다. buffer[2]부터 시작하여 문자열이 저장됩니다. 함수는 CR-LF를 읽을 경우 null 문자('\0')를 저장합니다. 그런 다음 문자열의 실제 길이를 두 번째 배열 요소인 buffer[1]에 저장합니다.

콘솔 창에 있는 동안 _cgets 또는 _cgetws 를 호출한 경우 모든 편집 키가 활성 상태이기 때문에 F3 키를 누르면 마지막으로 입력한 항목이 반복됩니다.

C++에서 이러한 함수는 보다 최신의 보안 대응 함수를 호출하는 템플릿 오버로드를 갖고 있습니다. 자세한 내용은 안전한 템플릿 오버로드를 참조하세요.

기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.

일반 텍스트 루틴 매핑

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 );
   }
}

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

참고 항목

콘솔 및 포트 I/O
_getch, _getwch