gets_s, _getws_s
Obtém uma linha do fluxo de stdin. Essas versões de obtém o, _getws têm os aprimoramentos de segurança, conforme descrito em Recursos de segurança no CRT.
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
Parâmetros
[saída] buffer
Local de armazenamento de uma cadeia de caracteres de entrada.[entrada] sizeInCharacters
O tamanho do buffer.
Valor de retorno
Retorna buffer se tiver êxito. Um ponteiro de NULL indica um erro ou uma condição de fim de arquivo. Use ferror ou feof para determinar qual ocorreu.
Comentários
A função gets_s lê uma linha do fluxo de entrada padrão stdin e a armazena em buffer. A linha consiste em todos os caracteres até, e incluindo, o primeiro caractere de nova linha ('\n'). gets_s substitui o caractere de nova linha por um caractere nulo (“\0") antes de retornar a linha. Por outro lado, a função de fgets_s retém o caractere de nova linha.
Se a primeira leitura de caractere é o caractere de participante de Arquivo, um caractere nulo é armazenado no início de buffer e NULL é retornado.
_getws é uma versão caracteres largos de gets_s; seu argumento e valor de retorno são cadeias de caracteres de largos.
Se buffer é NULL ou sizeInCharacters é menor ou igual a zero, ou se o buffer é muito pequeno conter a linha de entrada e o terminador nulo, essas funções invoca um manipulador inválido do parâmetro, conforme descrito em Validação do parâmetro. Se a execução puder continuar, essas funções retornarão NULL e definirão errno como ERANGE.
No C++, o uso dessas funções é simplificado por sobrecargas de modelo; as sobrecargas podem interpretar o tamanho do buffer automaticamente (eliminando a necessidade de especificar um argumento de tamanho) e podem substituir automaticamente as funções menos seguras mais antigas por correspondentes mais seguras e mais recentes. Para obter mais informações, consulte Sobrecargas de modelo seguras.
Mapeamentos da rotina de texto genérico
Rotina TCHAR.H |
_UNICODE & _MBCS não definido |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_getts |
gets_s |
gets_s |
_getws |
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
gets_s |
<stdio.h> |
_getws |
<stdio.h> ou <wchar.h> |
O console não tem suporte em aplicativos do Windows Store. Os manipuladores de fluxo padrão associados ao console — stdin, stdout e stderr — devem ser redirecionados antes que as funções de tempo de execução do C possam utilizá-los em aplicativos do Windows Store. Para informações adicionais de compatibilidade, consulte Compatibilidade.
Exemplo
// 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 );
}