Obtém, _getws
Obter uma linha do stdin fluxo. Versões mais seguras dessas funções estão disponível; consulte gets_s, _getws_s.
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
Parâmetros
- buffer
Local de armazenamento para a seqüência de caracteres de entrada.
Valor de retorno
Retorna o argumento se bem-sucedida.A NULL ponteiro indica uma condição de erro ou o participante do arquivo. Use ferror or feof para determinar qual deles ocorreu.If buffer é NULL, essas funções chamar um manipulador de parâmetro inválido, sistema autônomo descrito em Validação de parâmetro. Se a execução for permitida para continuar, essas funções retornam NULL e defina errno para EINVAL.
Comentários
The gets função lê uma linha do fluxo de entrada padrão stdin e o armazena no buffer. A linha consiste em todos os caracteres até e incluindo o primeiro caractere de nova linha ('\n').gets em seguida, substitui o caractere de nova linha com um caractere nulo ('\0') antes de retornar a linha. Em contraste, a fgets função retém o caractere de nova linha. _getws é uma versão de caractere largo da gets; seu argumento e valor retornado são seqüências de caracteres largos.
Observação de segurança: |
---|
Como não há nenhuma maneira de limitar o número de caracteres lidos pelo obtém, entrada não confiável pode causar com com facilidade saturações de buffer.Uso fgets em vez disso. |
No C++, essas funções têm sobrecargas de modelo que invocam as suas similares do mais recentes, seguras dessas funções.For more information, see Proteger overloads de modelo.
Mapeamentos de rotina de texto genérica
Rotina TCHAR.H |
_UNICODE & _MBCS não definido |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_getts |
gets |
gets |
_getws |
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
gets |
<stdio.h> |
_getws |
<stdio.h> ou <wchar.h> |
Para obter informações adicionais compatibilidade, consulte Compatibilidade na introdução.
Exemplo
// 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 );
}
Observe que a entrada mais de 20 caracteres irão saturar o buffer de linha e certamente fazer com que o programa falhar.
Hello there!
The line entered was: Hello there!