_snscanf_s, _snscanf_s_l, _snwscanf_s, _snwscanf_s_l
Dados de um período especificado de uma seqüência de caracteres em formato leituras.Essas são sistema autônomo versões de _snscanf, _snscanf_l, _snwscanf, _snwscanf_l com aprimoramentos de segurança conforme descrito em Aprimoramentos de segurança no CRT.
int __cdecl _snscanf_s(
const char * input,
size_t length,
const char * format,
...
);
int __cdecl _snscanf_s_l(
const char * input,
size_t length,
const char * format,
locale_t locale,
...
);
int __cdecl _snwscanf_s(
const wchar_t * input,
size_t length,
const wchar_t * format,
...
);
int __cdecl _snwscanf_s_l(
const wchar_t * input,
size_t length,
const wchar_t * format,
locale_t locale,
…
);
Parâmetros
input
Seqüência de caracteres de entrada para examinar.length
Número de caracteres para examinar em input.format
Especificadores de formato de um ou mais.... (optional)
Variáveis que serão usadas para armazenar os valores extraídos da seqüência de caracteres de entrada por especificadores de formato em format.locale
A localidade para usar.
Valor de retorno
Ambas as funções retorna o número de campos convertido com êxito e atribuídos; o valor retornado não inclui campos que foram lidos, mas não atribuídos.Um valor retornado 0 indica que nenhum campo foi atribuído.O valor retornado é EOF um erro ou se o participante da seqüência de caracteres for atingido antes da conversão primeira. For more information, see sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l.
If input ou format é um NULL ponteiro, o manipulador de parâmetro inválido é chamado, conforme descrito em Validação de parâmetro. Se a execução for permitida para continuar, essas funções retornam EOF e conjunto errno para EINVAL.
Para obter informações sobre esses e outros códigos de erro, consulte _doserrno, errno, _sys_errlist e _sys_nerr.
Comentários
Esta função é como sscanf_s exceto que ele fornece a capacidade de especificar um número fixo de caracteres para examinar a partir da cadeia de caracteres de entrada. For more information, see sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l.
O parâmetro de dimensionar do buffer é necessário com o tipo de campo caracteres c, C, s, S, e [. For more information, see scanf digitar caracteres de campo.
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 |
---|---|---|---|
_sntscanf_s |
_snscanf_s |
_snscanf_s |
_snwscanf_s |
_sntscanf_s_l |
_snscanf_s_l |
_snscanf_s_l |
_snwscanf_s_l |
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
_snscanf_s, _snscanf_s_l |
<stdio.h> |
_snwscanf_s, _snwscanf_s_l |
<stdio.h> ou <wchar.h> |
Para obter mais informações de compatibilidade, consulte Compatibilidade na introdução.
Exemplo
// crt_snscanf_s.c
// This example scans a string of
// numbers, using both the character
// and wide character secure versions
// of the snscanf function.
#include <stdio.h>
int main( )
{
char str1[] = "15 12 14...";
wchar_t str2[] = L"15 12 14...";
char s1[3];
wchar_t s2[3];
int i;
float fp;
i = _snscanf_s( str1, 6, "%s %f", s1, 3, &fp);
printf_s("_snscanf_s converted %d fields: ", i);
printf_s("%s and %f\n", s1, fp);
i = _snwscanf_s( str2, 6, L"%s %f", s2, 3, &fp);
wprintf_s(L"_snwscanf_s converted %d fields: ", i);
wprintf_s(L"%s and %f\n", s2, fp);
}
_snscanf_s converted 2 fields: 15 and 12.000000 _snwscanf_s converted 2 fields: 15 and 12.000000
Equivalente do NET Framework
Não aplicável. Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.