gets, _getws
한 회선에서 stdin 스트림.보다 안전한 버전의이 함수를 사용할 수 있습니다. see gets_s에 _getws_s.
중요 |
---|
이 API는 Windows 런타임에서 실행 되는 응용 프로그램에서 사용할 수 없습니다.자세한 내용은 /zw에 지원 되는 CRT 함수. |
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
매개 변수
- buffer
입력된 문자열에 대 한 저장소 위치입니다.
반환 값
성공 하는 경우 해당 인수를 반환 합니다.A NULL 포인터는 파일의 끝 또는 오류 조건을 나타냅니다.사용 ferror 또는 feof 어떤 것이 발생 했는지 확인 합니다.경우 buffer 는 NULL에 설명 된 대로 이러한 함수는 잘못 된 매개 변수 처리기를 호출 매개 변수 유효성 검사.이러한 함수는 실행을 계속 하도록 허용 된 경우, 반환 NULL 로 errno를 설정 하 고 EINVAL.
설명
gets 함수가 표준 입력된 스트림에서 줄을 읽고 stdin 에 저장 하 고 buffer.줄의 모든 문자를 포함 하는 첫 번째 줄 바꿈 문자 ('\n')로 구성 됩니다.gets다음 줄 바꿈 문자가 줄을 반환 하기 전에 null 문자 ('\0')을 대체 합니다.반면에 fgets 함수는 줄 바꿈 문자를 유지 합니다._getws와이드 문자 버전인 gets. 인수 및 반환 값의 와이드 문자 문자열입니다.
보안 정보 |
---|
쉽게 신뢰할 수 없는 입력으로 가져옵니다 읽을 문자의 수를 제한 하는 방법이 없으므로 버퍼 오버런을 발생할 수 있습니다.대신 fgets를 사용하십시오. |
C + +에서는 이러한 함수 최신, 보안 대응 함수를 호출 하는 템플릿 오버 로드 되어 있습니다.자세한 내용은 보안 템플릿 오버 로드을 참조하십시오.
일반 텍스트 루틴 매핑
TCHAR입니다.H 루틴 |
_UNICODE 및 _Mbcs가 정의 되어 있지 않습니다 |
_Mbcs가 정의 |
_Unicode가 정의 |
---|---|---|---|
_getts |
gets |
gets |
_getws |
요구 사항
루틴 |
필수 헤더 |
---|---|
gets |
<stdio.h> |
_getws |
<stdio.h> 또는 <wchar.h> |
추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.
예제
// 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입니다.