Partilhar via


_cscanf_s, _cscanf_s_l, _cwscanf_s, _cwscanf_s_l

Ler dados do console em formato.Esses são versões mais seguras de _cscanf, _cscanf_l, _cwscanf, _cwscanf_l com aprimoramentos de segurança sistema autônomo descrito em Aprimoramentos de segurança no CRT.

int _cscanf_s( 
   const char *format [,
      argument] ... 
);
int _cscanf_s_l( 
   const char *format,
   locale_t locale [,
      argument] ... 
);
int _cwscanf_s( 
   const wchar_t *format [,
      argument] ... 
);
int _cwscanf_s_l( 
   const wchar_t *format,
   locale_t locale [,
      argument] ... 
);

Parâmetros

  • format
    Seqüência de caracteres de controle de formato.

  • argument
    Parâmetros opcionais.

  • locale
    A localidade para usar.

Valor de retorno

O número de campos que foram convertidos com êxito e atribuídos.O valor retornado não inclui campos que foram lidos, mas não atribuídos.O valor retornado é EOF para uma tentativa de leitura no participante do arquivo. Isso pode ocorrer quando a entrada do teclado é redirecionada no nível de linha de comando do sistema operacional.Um valor retornado 0 indica que não há campos foram atribuídos.

Essas funções validar seus parâmetros.If format é um ponteiro nulo, essas funções chamar o manipulador de parâmetro inválido, conforme descrito em Validação de parâmetro. If execution is allowed to continue, these functions return EOF and errnois set to EINVAL.

Comentários

The _cscanf_s função lê os dados diretamente do console em locais fornecidos pelo argument. The _getche função é usada para ler caracteres.Cada parâmetro opcional deve ser um ponteiro para uma variável com um tipo que corresponde a um especificador de tipo de format. O formato controla a interpretação dos campos de entrada e tenha o mesmo formulário e funcione sistema autônomo a format parâmetro para o scanf_s função.Ao mesmo tempo em que _cscanf_s Exibe o caractere de entrada, normalmente ele não faz isso se a última telefonar _ungetch.

Like other secure versions of functions in the scanf family,_cscanf_s and _cswscanf_s require size arguments for the type field characters c, C, s, S, and [.For more information, see scanf especificação de largura.

Observação:

O parâmetro dimensionar é do tipo unsigned, não size_t.

As versões dessas funções com o _l sufixo são idênticas exceto que usarem o parâmetro de localidade passado em vez da localidade do thread corrente.

Mapeamentos de rotina de texto genérica

Rotina TCHAR.H

_UNICODE e _MBCS não definido

_MBCS definido

_UNICODE definido

_tcscanf_s

_cscanf_s

_cscanf_s

_cwscanf_s

_tcscanf_s_l

_cscanf_s_l

_cscanf_s_l

_cwscanf_s_l

Requisitos

Rotina

Cabeçalho necessário

_cscanf_s, _cscanf_s_l

<conio.h>

_cwscanf_s, _cwscanf_s_l

<conio.h> ou <wchar.h>

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

Bibliotecas

Todas as versões do C em time de execução bibliotecas.

Exemplo

// crt_cscanf_s.c
// compile with: /c
/* This program prompts for a string
 * and uses _cscanf_s to read in the response.
 * Then _cscanf_s returns the number of items
 * matched, and the program displays that number.
 */

#include <stdio.h>
#include <conio.h>

int main( void )
{
   int result, n[3];
   int i;

   result = _cscanf_s( "%i %i %i", &n[0], &n[1], &n[2] );
   _cprintf_s( "\r\nYou entered " );
   for( i=0; i<result; i++ )
      _cprintf_s( "%i ", n[i] );
   _cprintf_s( "\r\n" );
}

Entrada

1 2 3

Saída

You entered 1 2 3

Consulte também

Referência

Console e porta de E/s

_cprintf, _cprintf_l, _cwprintf, _cwprintf_l

fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l

scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l

sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l