_cscanf, _cscanf_l, _cwscanf, _cwscanf_l

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

Observação

no Visual Studio 2015, a família e as printf funções foram declaradas como inline e movidas para os <stdio.h> cabeçalhos e <conio.h> . scanf Se você estiver migrando um código mais antigo, poderá ver LNK2019 em conexão com essas funções. Para obter mais informações, consulte Visual C++ histórico de alterações 2003-2015.

Importante

Esta API não pode ser usada em aplicativos executados no Windows Runtime. Para obter mais informações, confira Funções do CRT sem suporte em aplicativos da Plataforma Universal do Windows.

Sintaxe

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 Retornado

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

Comentários

A função _cscanf lê os dados diretamente do console do para os locais fornecidos pelo argumento. 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 no formato. O formato controla a interpretação dos campos de entrada e tem a mesma forma e função que o parâmetro de formato para a função scanf . Embora _cscanf normalmente ecoa o caractere de entrada, ele não faz isso se a última chamada fosse _ungetch.

Essa função valida seus parâmetros. Se o formato for nulo, o manipulador de parâmetro inválido será invocado, conforme descrito em validação de 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 pelo fato de que usam o parâmetro Locale passado em vez da localidade do 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" );
}
1 2 3
Enter three integers: 1 2 3
You entered 3 2 1

Consulte também

E/s de porta e de console
_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