Compartilhar via


_cscanf_s, _cscanf_s_l, _cwscanf_s, _cwscanf_s_l

Dados formatados de leitura de console.Esses são mais seguros versões de _cscanf, _cscanf_l, _cwscanf, _cwscanf_l com aprimoramentos de segurança conforme descrito em Recursos de segurança no CRT.

Observação importanteImportante

Este API não pode ser usado em aplicativos executados em Tempo de Execução do Windows.Para obter mais informações, consulte Funções de CRT não suportadas com /ZW.

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
    Cadeia de caracteres de formato - controle.

  • argument
    Parâmetros opcionais.

  • locale
    A localidade a ser usada.

Valor de retorno

O número de campos que com êxito foram convertidos e atribuído.O valor de retorno não inclui os campos que foram lidos mas não atribuído.O valor de retorno é EOF para uma tentativa de ler no final do arquivo.Isso pode ocorrer quando a entrada do teclado é redirecionada no nível do sistema operacional de linha de comando.Um valor de retorno de 0 significa que qualquer campo esteve atribuído.

Essas funções validam seus parâmetros.Se format é um ponteiro zero, essas funções chamam o manipulador de parâmetro inválido, como descrito em Validação de parâmetro.Se a execução é permitida continuar, essas funções EOF de retorno e errnosão definidas como EINVAL.

Comentários

A função de _cscanf_s ler dados diretamente de console em locais dados por argument.A função de _getche é 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 em format.Os controles de formato a interpretação de entrada e coloca tem o mesmo formulário e função que o parâmetro de format para a função de scanf_s .Quando _cscanf_s ecoar normalmente o caractere de entrada, não faz isso se a última chamada foi a _ungetch.

Como outras versões seguros de funções na família descanf ,_cscanf_s e _cswscanf_s exigem argumentos de tamanho para os caracteres c, C, s, S, e [do campo do tipo.Para obter mais informações, consulte scanf especificação de largura.

ObservaçãoObservação

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

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

Mapeamentos da rotina de Genérico- texto

Rotina de TCHAR.H

_UNICODE e não definidos _MBCS

_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 mais informações, consulte Compatibilidade de compatibilidade na introdução.

Bibliotecas

Todas as versões de Bibliotecas em tempo de execução de C.

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 a 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