Partilhar via


_cgets_s, _cgetws_s

Obtém uma cadeia de caracteres do console. Essas versões do _cgets e do _cgetws têm aprimoramentos de segurança, conforme descrito em Recursos de segurança no CRT.

Importante

Essa API não pode ser usada em aplicativos executados no Tempo de Execução do Windows. Para obter mais informações, consulte funções CRT não suportadas em aplicativos da Plataforma Universal do Windows.

Sintaxe

errno_t _cgets_s(
   char *buffer,
   size_t numberOfElements,
   size_t *pSizeRead
);
errno_t _cgetws_s(
   wchar_t *buffer,
   size_t numberOfElements,
   size_t *pSizeRead
);
template <size_t size>
errno_t _cgets_s(
   char (&buffer)[size],
   size_t *pSizeRead
); // C++ only
template <size_t size>
errno_t _cgetws_s(
   wchar_t (&buffer)[size],
   size_t *pSizeRead
); // C++ only

Parâmetros

buffer
Local de armazenamento de dados.

numberOfElements
O tamanho do buffer em caracteres de byte único ou largos, que também é o número máximo de caracteres a serem lidos.

pSizeRead
O número de caracteres realmente lidos.

Valor de retorno

O valor de retorno é zero se for bem-sucedido; caso contrário, um código de erro se ocorrer uma falha.

Condições de erro

buffer numberOfElements pSizeRead Regresso Conteúdo da buffer
NULL qualquer qualquer EINVAL n/a
não NULL zero qualquer EINVAL não modificado
não NULL qualquer NULL EINVAL cadeia de caracteres de comprimento zero

Comentários

_cgets_s e _cgetws_s ler uma cadeia de caracteres do console e copiá-la (com um terminador nulo) para buffer. _cgetws_s é a versão de caracteres largos da função; Além do tamanho do caractere, o comportamento dessas duas funções é idêntico. O tamanho máximo da cadeia de caracteres a ser lida é passado como o parâmetro numberOfElements. Esse tamanho deve incluir um caractere extra para o nulo de terminação. O número real de caracteres lidos é colocado em pSizeRead.

Se ocorrer um erro durante a operação ou na validação dos parâmetros, o manipulador de parâmetros inválido será invocado, conforme descrito em de validação de parâmetros. Se a execução for permitida para continuar, errno será definido como EINVALe EINVAL será retornado.

Em C++, o uso dessas funções é simplificado por sobrecargas de modelo. As sobrecargas podem inferir o comprimento do buffer automaticamente, o que elimina a necessidade de especificar um argumento de tamanho. Também podem substituir automaticamente funções mais antigas e menos seguras pelas suas homólogas mais recentes e mais seguras. Para obter mais informações, consulte Sobrecargas de modelo seguro.

As versões da biblioteca de depuração dessas funções primeiro preenchem o buffer com 0xFE. Para desativar esse comportamento, use _CrtSetDebugFillThreshold.

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte estado global noCRT .

Mapeamentos de rotina de texto genérico

Rotina Tchar.h _UNICODE e _MBCS não definidos _MBCS definido _UNICODE definido
_cgetts_s _cgets_s _cgets_s _cgetws_s

Requerimentos

Rotina Cabeçalho obrigatório
_cgets_s <conio.h>
_cgetws_s <conio.h> ou <wchar.h>

Para obter mais informações sobre compatibilidade, consulte de compatibilidade .

Ver também

Console e porta E/S
_getch, _getwch