gets_s, _getws_sgets_s, _getws_s

stdin 스트림에서 줄을 가져옵니다.Gets a line from the stdin stream. 이러한 버전의 gets, _getws에는 CRT의 보안 기능에 설명된 대로 강화된 보안 기능이 포함되어 있습니다.These versions of gets, _getws have security enhancements, as described in Security Features in the CRT.

구문Syntax

char *gets_s(   
   char *buffer,  
   size_t sizeInCharacters  
);  
wchar_t *_getws_s(   
   wchar_t *buffer,  
   size_t sizeInCharacters  
);  
template <size_t size>  
char *gets_s(   
   char (&buffer)[size]  
); // C++ only  
template <size_t size>  
wchar_t *_getws_s(   
   wchar_t (&buffer)[size]  
); // C++ only  

매개 변수Parameters

[out] buffer[out] buffer
입력 문자열에 대한 저장소 위치입니다.Storage location for input string.

[in] sizeInCharacters[in] sizeInCharacters
버퍼의 크기입니다.The size of the buffer.

반환 값Return Value

성공하는 경우 buffer가 반환됩니다.Returns buffer if successful. NULL 포인터는 오류 또는 파일 끝 조건을 나타냅니다.A NULL pointer indicates an error or end-of-file condition. 어떤 것이 발생했는지 확인하려면 ferror 또는 feof를 사용합니다.Use ferror or feof to determine which one has occurred.

설명Remarks

gets_s 함수는 표준 입력 스트림 stdin에서 줄을 읽고 buffer에 저장합니다.The gets_s function reads a line from the standard input stream stdin and stores it in buffer. 줄은 첫 번째 줄 바꿈 문자('\n')까지 모든 문자로 구성됩니다.The line consists of all characters up to and including the first newline character ('\n'). gets_s는 줄을 반환하기 전에 줄 바꿈 문자를 null 문자('\0')로 대체합니다.gets_s then replaces the newline character with a null character ('\0') before returning the line. 반대로 fgets_s 함수는 줄 바꿈 문자를 유지합니다.In contrast, the fgets_s function retains the newline character.

첫 번째 문자 읽기가 파일 끝 문자인 경우 buffer의 시작 부분에 null 문자가 저장되고 NULL이 반환됩니다.If the first character read is the end-of-file character, a null character is stored at the beginning of buffer and NULL is returned.

_getws_sgets_s의 와이드 문자 버전입니다. 해당 인수 및 반환 값은 와이드 문자열입니다._getws_s is a wide-character version of gets_s; its argument and return value are wide-character strings.

bufferNULL이거나 sizeInCharacters가 0보다 작거나 같은 경우 도는 버퍼가 너무 작아 입력 줄과 null 종료자를 포함할 수 없는 경우, 이러한 함수는 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 호출자를 호출합니다.If buffer is NULL or sizeInCharacters is less than or equal to zero, or if the buffer is too small to contain the input line and null terminator, these functions invoke an invalid parameter handler, as described in Parameter Validation. 계속해서 실행하도록 허용된 경우 이러한 함수는 NULL을 반환하고 errno를 ERANGE로 설정합니다.If execution is allowed to continue, these functions return NULL and set errno to ERANGE.

C++에서는 템플릿 오버로드로 인해 이러한 함수를 사용하는 것이 보다 간단해 집니다. 오버로드는 버퍼 길이를 자동으로 유추할 수 있으며(크기 인수를 지정할 필요가 없어짐), 기존의 비보안 함수를 보다 최신의 보안 대응 함수로 자동으로 바꿀 수 있습니다.In C++, using these functions is simplified by template overloads; the overloads can infer buffer length automatically (eliminating the need to specify a size argument) and they can automatically replace older, non-secure functions with their newer, secure counterparts. 자세한 내용은 Secure Template Overloads을 참조하세요.For more information, see Secure Template Overloads.

제네릭 텍스트 라우팅 매핑Generic-Text Routine Mappings

TCHAR.H 루틴TCHAR.H routine _UNICODE 및 _MBCS 정의되지 않음_UNICODE & _MBCS not defined _MBCS 정의됨_MBCS defined _UNICODE 정의됨_UNICODE defined
_getts_s gets_s gets_s _getws_s

요구 사항Requirements

루틴Routine 필수 헤더Required header
gets_s <stdio.h><stdio.h>
_getws_s <stdio.h> 또는 <wchar.h><stdio.h> or <wchar.h>

콘솔 유니버설 Windows 플랫폼 (UWP) 응용 프로그램에서 지원 되지 않습니다.The console is not supported in Universal Windows Platform (UWP) apps. 콘솔을 사용 하는 연결 된 표준 스트림 핸들 stdin, stdout, 및 stderr, C 런타임 함수 UWP 앱에서 사용할 수 있는 전에 리디렉션되어야 합니다.The standard stream handles that are associated with the console, stdin, stdout, and stderr, must be redirected before C run-time functions can use them in UWP apps. 호환성에 대한 자세한 내용은 호환성을 참조하세요.For additional compatibility information, see Compatibility.

예제Example

// crt_gets_s.c  
// This program retrieves a string from the stdin and   
// prints the same string to the console.  

#include <stdio.h>  

int main( void )  
{  
   char line[21]; // room for 20 chars + '\0'  
   gets_s( line, 20 );  
   printf( "The line entered was: %s\n", line );  
}  

Hello there!The line entered was: Hello there!  

참고 항목See Also

스트림 I/O Stream I/O
gets, _getws gets, _getws
fgets, fgetws fgets, fgetws
fputs, fputws fputs, fputws
puts, _putwsputs, _putws