_cgets, _cgetws
Obtém uma seqüência de caractere a partir do console.Versões mais seguras dessas funções estão disponível; consulte _cgets_s, _cgetws_s.
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 de armazenamento de dados.
Valor de retorno
_cgets e _cgetws retornar um ponteiro para o início da seqüência de caracteres, no buffer[2]. If buffer é NULL, essas funções chamar o manipulador de parâmetro inválido, conforme descrito em Validação de parâmetro. Se a execução for permitida para continuar, elas retornam NULL e conjunto errno para EINVAL.
Comentários
Essas funções ler uma seqüência de caracteres do console e armazenar a seqüência de caracteres e seu comprimento no local apontado por buffer. The buffer o parâmetro deve ser um ponteiro para uma matriz de caractere. O primeiro elemento da matriz, buffer[0], deve conter o comprimento máximo (em caracteres) da seqüência de caracteres a serem lidos. A matriz deve conter elementos suficiente para conter a seqüência de caracteres, um caractere nulo de terminação ('\0') e 2 bytes adicionais.A função lê caracteres até return–linha um carro (CR-LF) combinação de feed ou o número especificado de caracteres será lida.A seqüência de caracteres é armazenada começando em buffer[2]. Se a função lê uma CR-LF, ele armazenará o caractere nulo ('\0').A função armazena o tamanho real da seqüência de caracteres no segundo elemento de matriz, buffer[1].
Because all editing keys are active when _cgets or_cgetws is called while in a console window, pressing the F3 key repeats the last entered entry.
No C++, essas funções têm sobrecargas de modelo que invocam as suas similares do mais recentes, seguras dessas funções.For more information, see Proteger overloads de modelo.
Mapeamentos de rotina de texto genérica
Rotina tchar.h |
_UNICODE e _MBCS não definido |
_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 de compatibilidade, consulte Compatibilidade na introdução.
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 );
}
}
A line of input.
Input line of text, followed by carriage return: Line Length = 16 Text = A line of input.