_cscanf_s, _cscanf_s_l, _cwscanf_s, _cwscanf_s_l
Ler dados do console em formato.Esses são versões mais seguras de _cscanf, _cscanf_l, _cwscanf, _cwscanf_l com aprimoramentos de segurança sistema autônomo descrito em Aprimoramentos de segurança no CRT.
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
Seqüência de caracteres de controle de formato.argument
Parâmetros opcionais.locale
A localidade para usar.
Valor de retorno
O número de campos que foram convertidos com êxito e atribuídos.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 participante do arquivo. Isso pode ocorrer quando a entrada do teclado é redirecionada no nível de linha de comando do sistema operacional.Um valor retornado 0 indica que não há campos foram atribuídos.
Essas funções validar seus parâmetros.If format é um ponteiro nulo, essas funções chamar o manipulador de parâmetro inválido, conforme descrito em Validação de parâmetro. If execution is allowed to continue, these functions return EOF and errnois set to EINVAL.
Comentários
The _cscanf_s função lê os dados diretamente do console em locais fornecidos pelo argument. The _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 de format. O formato controla a interpretação dos campos de entrada e tenha o mesmo formulário e funcione sistema autônomo a format parâmetro para o scanf_s função.Ao mesmo tempo em que _cscanf_s Exibe o caractere de entrada, normalmente ele não faz isso se a última telefonar _ungetch.
Like other secure versions of functions in the scanf family,_cscanf_s and _cswscanf_s require size arguments for the type field characters c, C, s, S, and [.For more information, see scanf especificação de largura.
Observação: |
---|
O parâmetro dimensionar é do tipo unsigned, não size_t. |
As versões dessas funções com o _l sufixo são idênticas exceto que usarem o parâmetro de localidade passado em vez da localidade do thread corrente.
Mapeamentos de rotina de texto genérica
Rotina TCHAR.H |
_UNICODE e _MBCS não definido |
_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 obter mais informações de compatibilidade, consulte Compatibilidade na introdução.
Bibliotecas
Todas as versões do C em time de execução bibliotecas.
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