_cgets, _cgetws
Obtém uma cadeia de caracteres do console. Versões mais seguras dessas funções estão disponíveis; consulte _cgets_s, _cgetws_s.
Importante
Esta API não pode ser usada em aplicativos que executam no Tempo de Execução do Windows.Para obter mais informações, consulte Funções CRT sem suporte pelo /ZW.
char *_cgets(
char *buffer
);
wchar_t *_cgetws(
wchar_t *buffer
);
template <size_t size>
char *_cgets(
char (&buffer)[size]
); // C++ only
template <size_t size>
wchar_t *_cgetws(
wchar_t (&buffer)[size]
); // C++ only
Parâmetros
- buffer
Local para armazenamento de dados.
Valor de retorno
_cgets e _cgetws retornam um ponteiro para o início da cadeia de caracteres, em buffer[2]. Se buffer for NULL, essas funções chamarão o manipulador de parâmetro inválido, como descrito em Validação do parâmetro. Se a execução puder continuar, elas retornarão NULL e definirão errno como EINVAL.
Comentários
Essas funções leem uma cadeia de caracteres do console e armazenam a cadeia de caracteres e seu comprimento no local apontado por buffer. O parâmetro buffer deve ser um ponteiro para uma matriz de caracteres. O primeiro elemento da matriz, buffer[0], deve conter o comprimento máximo (em caracteres) da cadeia de caracteres a ser lida. A matriz deve conter elementos suficientes para armazenar a cadeia de caracteres, um caractere nulo de terminação ('\0') e 2 bytes adicionais. A função lê caracteres até que uma combinação de alimentação da linha de retorno de transporte (CR-LF) ou o número de caracteres especificado ser lido. A cadeia de caracteres é armazenada começando em buffer[2]. Se a função ler um CR-LF, armazena o caractere nulo (“\0"). A função armazena o tamanho real da cadeia de caracteres no segundo elemento da matriz, buffer[1].
Como todas as chaves de edição ficam ativas quando _cgets ou_cgetws é chamado durante uma janela de console, pressionar a tecla F3 repete a entrada inserida mais recentemente.
No C++, essas funções têm as sobrecargas de modelo que invocam as correspondentes seguras mais recentes dessas funções. Para obter mais informações, consulte Sobrecargas de modelo seguras.
Mapeamentos da rotina de texto genérico
Rotina Tchar.h |
_UNICODE e _MBCS não definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_cgetts |
_cgets |
_cgets |
_cgetws |
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
_cgets |
<conio.h> |
_cgetws |
<conio.h> ou <wchar.h> |
Para obter mais informações sobre compatibilidade, consulte Compatibilidade.
Exemplo
// crt_cgets.c
// compile with: /c /W3
// This program creates a buffer and initializes
// the first byte to the size of the buffer. Next, the
// program accepts an input string using _cgets and displays
// the size and text of that string.
#include <conio.h>
#include <stdio.h>
#include <errno.h>
int main( void )
{
char buffer[83] = { 80 }; // Maximum characters in 1st byte
char *result;
printf( "Input line of text, followed by carriage return:\n");
// Input a line of text:
result = _cgets( buffer ); // C4996
// Note: _cgets is deprecated; consider using _cgets_s
if (!result)
{
printf( "An error occurred reading from the console:"
" error code %d\n", errno);
}
else
{
printf( "\nLine length = %d\nText = %s\n",
buffer[1], result );
}
}