Compartilhar via


_cscanf, _cscanf_l, _cwscanf, _cwscanf_l

Lê dados formatados a partir do console. Versões mais seguras dessas funções estão disponíveis; consulte _cscanf_s, _cscanf_s_l, _cwscanf_s, _cwscanf_s_l.

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.

int _cscanf( 
   const char *format [,
   argument] ... 
);
int _cscanf_l( 
   const char *format,
   locale_t locale [,
   argument] ... 
);
int _cwscanf( 
   const wchar_t *format [,
   argument] ... 
);
int _cwscanf_l( 
   const wchar_t *format,
   locale_t locale [,
   argument] ... 
);

Parâmetros

  • format
    Cadeia de caracteres de controle de formato.

  • argument
    Parâmetros opcionais.

  • locale
    A localidade a ser usada.

Valor de retorno

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

Comentários

A função de _cscanf lê os dados diretamente do console em locais fornecidos por argument. A função _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. O formato controla a interpretação dos campos de entrada e tem o mesmo formulário e função do parâmetro format para a função de scanf. Embora o _cscanf ecoe normalmente o caractere de entrada, ele não faz isso se a última chamada foi para _ungetch.

Essa função valida seus parâmetros. Se o formato for NULO, o manipulador de parâmetro inválido será chamado, como descrito em Validação do parâmetro. Se a execução puder continuar, errno será definido como EINVAL e a função retornará EOF.

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

Mapeamentos da rotina de texto genérico

Rotina TCHAR.H

_UNICODE e _MBCS não definidos

_MBCS definido

_UNICODE definido

_tcscanf

_cscanf

_cscanf

_cwscanf

_tcscanf_l

_cscanf_l

_cscanf_l

_cwscanf_l

Requisitos

Rotina

Cabeçalho necessário

_cscanf,_cscanf_l

<conio.h>

_cwscanf, _cwscanf_l

<conio.h> ou <wchar.h>

Para obter mais informações sobre compatibilidade, consulte Compatibilidade.

Exemplo

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

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

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

   _cprintf_s( "Enter three integers: ");
   result = _cscanf( "%i %i %i", &i[0], &i[1], &i[2] ); // C4996
   // Note: _cscanf is deprecated; consider using _cscanf_s instead
   _cprintf_s( "\r\nYou entered " );
   while( result-- )
      _cprintf_s( "%i ", i[result] );
   _cprintf_s( "\r\n" );
}

Entrada

1 2 3

Saída

Enter three integers: 1 2 3
You entered 3 2 1

Consulte também

Referência

Console e E/S de porta

_cprintf, _cprintf_l, _cwprintf, _cwprintf_l

fscanf, _fscanf_l, fwscanf, _fwscanf_l

scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l

sscanf, _sscanf_l, swscanf, _swscanf_l