gets_s, _getws_s
Obter uma linha de fluxo de stdin .Essas são versões de obtém, _getws com 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
[out] buffer
Local de armazenamento para a cadeia de caracteres de entrada.[in] sizeInCharacters
O tamanho do buffer.
Valor de retorno
Retorna se buffer com êxito.Um ponteiro de NULL indica um erro ou uma condição de final de Arquivo.Use ferror ou feof para determinar qual ocorreu.
Comentários
A função de gets_s ler uma linha de fluxo de entrada padrão stdin e armazená-las 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 com 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 caracteres é o caractere de final de Arquivo, um caractere nulo é armazenado no início de buffer e NULL é retornado.
_getws é uma versão de largo- caractere de gets_s; os argumentos e valor de retorno são cadeias de caracteres de largo- caractere.
Se buffer é NULL ou sizeInCharacters é menor ou igual a zero, ou se o buffer é muito pequeno conter a linha de entrada e o terminador dessas funções zero, chamam um manipulador de parâmetro inválido, como descrito em Validação de parâmetro.Se a execução é permitida continuar, essas funções NULL de retorno e errno defina a ERANGE.
Em C++, usar essas funções é simplificada por sobrecargas de modelo; as sobrecargas podem interpretar o tamanho do buffer (automaticamente que elimina a necessidade de especificar um argumento de tamanho) e podem automaticamente substituir mais antigos, não funções de segurança mais recentes, com suas contrapartes seguros.Para obter mais informações, consulte Proteger Overloads de modelo.
Mapeamentos da rotina de Genérico- texto
Rotina de TCHAR.H |
_UNICODE & _MBCS não definidos |
_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 é suportado em aplicativos de Windows Store .Identificadores padrões de fluxo associadas ao console, stdin, stdout, e stderr, devem ser redirecionada antes que as funções de tempo de execução das C pode usar em aplicativos de Windows Store .Para informações extras de compatibilidade Compatibilidade na introdução, consulte.
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 );
}