_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