gets, _getwsgets, _getws

stdin 스트림에서 줄을 가져옵니다.Gets a line from the stdin stream. 이러한 함수의 더 안전한 버전을 사용할 수 있습니다. gets_s, _getws_s를 참조하세요.More secure versions of these functions are available; see gets_s, _getws_s.

중요

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

구문Syntax

char *gets(   
   char *buffer   
);  
wchar_t *_getws(   
   wchar_t *buffer   
);  
template <size_t size>  
char *gets(   
   char (&buffer)[size]  
); // C++ only  
template <size_t size>  
wchar_t *_getws(   
   wchar_t (&buffer)[size]  
); // C++ only  

매개 변수Parameters

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

반환 값Return Value

성공하면 해당 인수를 반환합니다.Returns its argument 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. bufferNULL인 경우 이러한 함수는 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기를 호출합니다.If buffer is NULL, these functions invoke an invalid parameter handler, as described in Parameter Validation. 계속해서 실행하도록 허용된 경우 이러한 함수는 NULL 을 반환하고 errno를 EINVAL로 설정합니다.If execution is allowed to continue, these functions return NULL and set errno to EINVAL.

설명Remarks

gets 함수는 표준 입력 스트림 stdin에서 줄을 읽고 buffer에 저장합니다.The gets 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 는 줄을 반환하기 전에 줄 바꿈 문자를 null 문자('\0')로 대체합니다.gets then replaces the newline character with a null character ('\0') before returning the line. 반대로 fgets 함수는 줄 바꿈 문자를 유지합니다.In contrast, the fgets function retains the newline character. _getwsgets의 와이드 문자 버전입니다. 해당 인수 및 반환 값은 와이드 문자열입니다._getws is a wide-character version of gets; its argument and return value are wide-character strings.

중요

gets에서 읽은 문자 수에 대한 제한이 없으므로 신뢰할 수 없는 입력에서 쉽게 버퍼 오버런이 발생할 수 있습니다.Because there is no way to limit the number of characters read by gets, untrusted input can easily cause buffer overruns. 대신 fgets 를 사용하세요.Use fgets instead.

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 & _MBCS not defined _MBCS 정의됨_MBCS defined _UNICODE 정의됨_UNICODE defined
_getts gets gets _getws

요구 사항Requirements

루틴에서 반환된 값Routine 필수 헤더Required header
gets <stdio.h><stdio.h>
_getws <stdio.h> 또는 <wchar.h><stdio.h> or <wchar.h>

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

Example

// crt_gets.c  
// compile with: /WX /W3  

#include <stdio.h>  

int main( void )  
{  
   char line[21]; // room for 20 chars + '\0'  
   gets( line );  // C4996  
   // Danger: No way to limit input to 20 chars.  
   // Consider using gets_s instead.  
   printf( "The line entered was: %s\n", line );  
}  

20자보다 긴 입력에서 줄 버퍼를 오버런하면 대부분 프로그램에서 충돌이 유발될 수 있습니다.Note that input longer than 20 characters will overrun the line buffer and almost certainly cause the program to crash.


Hello there!The line entered was: Hello there!  

참고 항목See Also

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