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

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

sizeInCharacterssizeInCharacters
버퍼의 크기입니다.The size of the buffer.

반환 값Return Value

반환 버퍼 성공 하는 경우.Returns buffer if successful. A 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 저장 버퍼합니다.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.

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

경우 버퍼NULL 또는 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_getts_s gets_sgets_s gets_sgets_s _getws_s_getws_s

요구 사항Requirements

루틴Routine 필수 헤더Required header
gets_sgets_s <stdio.h><stdio.h>
_getws_s_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/OStream I/O
gets, _getwsgets, _getws
fgets, fgetwsfgets, fgetws
fputs, fputwsfputs, fputws
puts, _putwsputs, _putws