gets_s
, _getws_s
Obtém uma linha do fluxo stdin
. Essas versões do , têm aprimoramentos de segurança, conforme descrito em Recursos de gets
segurança na CRT. _getws
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.
Retornar valor
Retorna buffer
se houver êxito. Um ponteiro NULL
indica uma condição de erro ou de final do arquivo. Use ferror
oufeof
para determinar qual das condições 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
, então, 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 NULL
nulo será armazenado no início do e retornadobuffer
.
_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 ou for menor ou igual a zero, ou sizeInCharacters
se o buffer for NULL
muito pequeno para conter a linha de entrada e o terminador nulo, essas funções invocarão um manipulador de parâmetros 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 seguras.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na CRT.
Mapeamentos de rotina de texto genérico
Rotina TCHAR.H |
_UNICODE e _MBCS não definidos |
_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 aplicativos UWP (Plataforma Universal do Windows). Os identificadores de fluxo padrão associados ao console, stdin
, stdout
e stderr
, devem ser redirecionados antes que as funções em tempo de execução C possam usá-los em aplicativos UWP. Para obter 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
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de