Compartilhar via


gets_s, _getws_s

Obtém uma linha do fluxo de stdin. Essas versões de obtém o, _getws têm os aprimoramentos de segurança, conforme descrito em Recursos de segurança no CRT.

char *gets_s( 
   char *buffer,
   size_t sizeInCharacters
);
wchar_t *_getws_s( 
   wchar_t *buffer,
   size_t sizeInCharacters
);
template <size_t size>
char *gets_s( 
   char (&buffer)[size]
); // C++ only
template <size_t size>
wchar_t *_getws_s( 
   wchar_t (&buffer)[size]
); // C++ only

Parâmetros

  • [saída] buffer
    Local de armazenamento de uma cadeia de caracteres de entrada.

  • [entrada] sizeInCharacters
    O tamanho do buffer.

Valor de retorno

Retorna buffer 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.

Comentários

A função gets_s 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_s substitui o caractere de nova linha por um caractere nulo (“\0") antes de retornar a linha. Por outro lado, a função de fgets_s retém o caractere de nova linha.

Se a primeira leitura de caractere é o caractere de participante de Arquivo, um caractere nulo é armazenado no início de buffer e NULL é retornado.

_getws é uma versão caracteres largos de gets_s; seu argumento e valor de retorno são cadeias de caracteres de largos.

Se buffer é NULL ou sizeInCharacters é menor ou igual a zero, ou se o buffer é muito pequeno conter a linha de entrada e o terminador nulo, essas funções invoca um manipulador inválido do parâmetro, conforme descrito em Validação do parâmetro. Se a execução puder continuar, essas funções retornarão NULL e definirão errno como ERANGE.

No C++, o uso dessas funções é simplificado por sobrecargas de modelo; as sobrecargas podem interpretar o tamanho do buffer automaticamente (eliminando a necessidade de especificar um argumento de tamanho) e podem substituir automaticamente as funções menos seguras mais antigas por correspondentes mais seguras e mais recentes. 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_s

gets_s

_getws

Requisitos

Rotina

Cabeçalho necessário

gets_s

<stdio.h>

_getws

<stdio.h> ou <wchar.h>

O console não tem suporte em aplicativos do Windows Store. Os manipuladores de fluxo padrão associados ao console — stdin, stdout e stderr — devem ser redirecionados antes que as funções de tempo de execução do C possam utilizá-los em aplicativos do Windows Store. Para informações adicionais de compatibilidade, consulte Compatibilidade.

Exemplo

// crt_gets_s.c
// This program retrieves a string from the stdin and 
// prints the same string to the console.

#include <stdio.h>

int main( void )
{
   char line[21]; // room for 20 chars + '\0'
   gets_s( line, 20 );
   printf( "The line entered was: %s\n", line );
}
  

Equivalência do .NET Framework

System::Console::Read

Consulte também

Referência

E/S de fluxo

gets, _getws

fgets, fgetws

fputs, fputws

puts, _putws