gets_s, _getws_s
Obter uma linha do stdin fluxo. Essas são sistema autônomo versões de Obtém, _getws com aprimoramentos de segurança conforme descrito em Aprimoramentos 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
[out] buffer
Local de armazenamento para a seqüência de caracteres de entrada.[in]sizeInCharacters
O dimensionar do buffer.
Valor de retorno
Retornabuffer Se for bem-sucedido. A NULL ponteiro indica uma condição de erro ou o participante do arquivo. Use ferror or feof para determinar qual deles ocorreu.
Comentários
The gets_s 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_s em seguida, substitui o caractere de nova linha com um caractere nulo ('\0') antes de retornar a linha. Em contraste, a fgets_s função retém o caractere de nova linha.
Se o primeiro caractere lido é o caractere de participante de arquivo, um caractere nulo é armazenado no início de buffer e NULL será retornado.
_getws é uma versão de caractere largo da gets_s; seu argumento e valor retornado são seqüências de caracteres largos.
If buffer é NULL ou sizeInCharacters é menor ou igual a zero ou se o buffer é muito pequeno para conter a linha de entrada e do terminador nulo, essas funções invocar 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.
No C++, usando essas funções é simplificado pelo modelo sobrecargas; sobrecargas de podem inferir o comprimento do buffer automaticamente (eliminando a necessidade de especificar um argumento de dimensionar) e eles podem substituir automaticamente funções não seguras, mais antigas, com suas contrapartes mais recentes e seguras.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_s |
gets_s |
_getws |
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
gets_s |
<stdio.h> |
_getws |
<stdio.h> ou <wchar.h> |
Para obter informações adicionais compatibilidade, consulte Compatibilidade na introdução.
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!