Compartilhar via


gets, _getws

Obtém uma linha do fluxo de stdin. Versões mais seguras dessas funções estão disponíveis; consulte gets_s, _getws_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 *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 de uma cadeia de caracteres de entrada.

Valor de retorno

Retorna o seu argumento se tiver êxito. Um ponteiro de NULL indica um erro ou uma condição de fim de arquivo. Use ferror ou feof para determinar qual ocorreu. Se buffer for NULL, essas funções chamarão um manipulador de parâmetro inválido, como descrito em Validação do parâmetro. Se a execução puder continuar, essas funções retornarão NULL e definirão errno como EINVAL.

Comentários

A função gets lê uma linha do fluxo de entrada padrão stdin e a armazena em buffer. A linha consiste em todos os caracteres até, e incluindo, o primeiro caractere de nova linha ('\n'). gets substitui o caractere de nova linha por um caractere nulo (“\0") antes de retornar a linha. Por outro lado, a função de fgets retém o caractere de nova linha. _getws é uma versão caracteres largos de gets; seu argumento e valor de retorno são cadeias de caracteres de largos.

Observação de segurançaObservação de segurança

Como não há uma maneira de limitar o número de caracteres obtidos pela leitura, a entrada não confiável pode facilmente causar saturações de buffer.Use fgets em vez disso.

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 & _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 informações adicionais de compatibilidade, consulte Compatibilidade.

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 maior que 20 caracteres passará o buffer de linha e certamente fará o programar falhar.

  

Equivalência do .NET Framework

System::Console::Read

Consulte também

Referência

E/S de fluxo

fgets, fgetws

fputs, fputws

puts, _putws