_cscanf, _cscanf_l, _cwscanf, _cwscanf_l

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

Observação

No Visual Studio 2015, a família de funções printf e scanf foram declarados como inline e movidos para os cabeçalhos <stdio.h> e <conio.h>. Se você estiver migrando código mais antigo, poderá ver o Erro do Vinculador LNK2019 em conexão com essas funções. Para saber mais, confira o histórico de alterações do Visual C++ 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 retornado é EOF para uma tentativa de leitura no final do arquivo. An EOF também pode ser retornado quando a entrada do teclado é redirecionada para o nível de linha de comando do sistema operacional. Um valor retornado de zero significa que nenhum campo foi atribuído.

Comentários

A função _cscanf lê os dados diretamente no console nos locais fornecidos por argument. A _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 em format. O formato controla a interpretação dos campos de entrada e tem a mesma forma e função que o format parâmetro para a scanf função. Embora _cscanf normalmente ecoe o caractere de entrada, ele não o fará se a última chamada tiver sido para _ungetch.

Essa função valida seus parâmetros. Se format for NULL, o manipulador de parâmetro inválido será invocado, conforme descrito em Validação de parâmetro. Se a execução tiver permissão para 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, com a exceção de usarem o parâmetro de localidade passado, em vez da localidade do thread atual.

Mapeamentos de 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 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

Confira também

E/S de console e 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