_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.
Importante |
---|
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çã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
_cprintf, _cprintf_l, _cwprintf, _cwprintf_l
fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l