gets_s, _getws_s

Obtém uma linha do fluxo stdin. Essas versões dogets , têm _getws aprimoramentos de segurança, conforme descrito em Recursos de segurança no CRT.

Sintaxe

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

buffer
Local de armazenamento para a cadeia de caracteres de entrada.

sizeInCharacters
O tamanho do buffer.

Valor Retornado

Retorna buffer se houver êxito. Um ponteiro NULL indica uma condição de erro ou de final do 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 em seguida, substitui o caractere de nova linha por um caractere nulo ('\0') antes de retornar a linha. Por sua vez, a função fgets_s retém o caractere de nova linha.

Se o primeiro caractere lido for o caractere de fim de arquivo, um caractere nulo será armazenado no início de buffer e NULL será retornado.

_getws_s é uma versão de caractere largo de gets_s; seu argumento e o valor retornado são cadeias de caracteres largos.

Se buffer for NULL ou sizeInCharacters for menor ou igual a zero ou se o buffer for muito pequeno para conter a linha de entrada e o terminador nulo, essas funções invocarão um manipulador de parâmetro inválido, conforme descrito em Validação de parâmetro. Se a execução puder continuar, essas funções retornarão NULL e definirão errno como ERANGE.

Em C++, o uso dessas funções é simplificado pelas sobrecargas de modelo; as sobrecargas podem inferir o tamanho do buffer automaticamente (eliminando a necessidade de especificar um argumento de tamanho) e podem substituir automaticamente funções mais antigas e não seguras por suas equivalentes mais recentes e seguras. Para obter mais informações, consulte Sobrecargas de modelo seguro.

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar isso, consulte Estado global no CRT.

Mapeamentos da rotina de texto genérico

TCHAR.H Rotina _UNICODE&_MBCS não definido _MBCS Definido _UNICODE Definido
_getts_s gets_s gets_s _getws_s

Requisitos

Rotina Cabeçalho necessário
gets_s <stdio.h>
_getws_s <stdio.h> ou <wchar.h>

Não há suporte para o console em Plataforma Universal do Windows (UWP). Os alças de fluxo padrão associados ao console, , stdinstdoutstderre devem ser redirecionados antes que as funções em tempo de run-time C possam usá-las em aplicativos UWP. Para obter mais informações sobre 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 );
}
Hello there!
The line entered was: Hello there!

Confira também

E/S de fluxo
gets, _getws
fgets, fgetws
fputs, fputws
puts, _putws