Share via


Obtém, _getws

Obter uma linha do stdin fluxo. Versões mais seguras dessas funções estão disponível; consulte gets_s, _getws_s.

char *gets( 
   char *buffer 
);
wchar_t *_getws( 
   wchar_t *buffer 
);
template <size_t size>
char *gets( 
   char (&buffer)[size]
); // C++ only
template <size_t size>
wchar_t *_getws( 
   wchar_t (&buffer)[size]
); // C++ only

Parâmetros

  • buffer
    Local de armazenamento para a seqüência de caracteres de entrada.

Valor de retorno

Retorna o argumento se bem-sucedida.A NULL ponteiro indica uma condição de erro ou o participante do arquivo. Use ferror or feof para determinar qual deles ocorreu.If buffer é NULL, essas funções chamar 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.

Comentários

The gets 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 em seguida, substitui o caractere de nova linha com um caractere nulo ('\0') antes de retornar a linha. Em contraste, a fgets função retém o caractere de nova linha. _getws é uma versão de caractere largo da gets; seu argumento e valor retornado são seqüências de caracteres largos.

Observação de segurança:

Como não há nenhuma maneira de limitar o número de caracteres lidos pelo obtém, entrada não confiável pode causar com com facilidade saturações de buffer.Uso fgets em vez disso.

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 & _MBCS não definido

_MBCS definido

_UNICODE definido

_getts

gets

gets

_getws

Requisitos

Rotina

Cabeçalho necessário

gets

<stdio.h>

_getws

<stdio.h> ou <wchar.h>

Para obter informações adicionais compatibilidade, consulte Compatibilidade na introdução.

Exemplo

// crt_gets.c
// compile with: /WX /W3

#include <stdio.h>

int main( void )
{
   char line[21]; // room for 20 chars + '\0'
   gets( line );  // C4996
   // Danger: No way to limit input to 20 chars.
   // Consider using gets_s instead.
   printf( "The line entered was: %s\n", line );
}

Observe que a entrada mais de 20 caracteres irão saturar o buffer de linha e certamente fazer com que o programa falhar.

Hello there!

The line entered was: Hello there!

Equivalente do NET Framework

sistema::Console::Read

Consulte também

Referência

Fluxo de E/S

fgets, fgetws

fputs, fputws

coloca _putws