Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Retorna o número de caracteres na cadeia de caracteres formatada usando um ponteiro para uma lista de argumentos, com a capacidade de especificar a ordem em que os argumentos são usados.
Sintaxe
int _vscprintf_p(
const char *format,
va_list argptr
);
int _vscprintf_p_l(
const char *format,
_locale_t locale,
va_list argptr
);
int _vscwprintf_p (
const wchar_t *format,
va_list argptr
);
int _vscwprintf_p_l(
const wchar_t *format,
_locale_t locale,
va_list argptr
);
Parâmetros
format
Cadeia de caracteres de controle de formato.
argptr
Ponteiro para a lista de argumentos.
locale
A localidade a ser usada.
Para obter mais informações, consulte Sintaxe de especificação de formato.
Valor de retorno
_vscprintf_p retorna o número de caracteres que seriam gerados se a cadeia de caracteres apontada pela lista de argumentos fosse impressa ou enviada para um arquivo ou buffer usando os códigos de formatação especificados. O valor retornado não inclui o caractere nulo de terminação.
_vscwprintf_p executa a mesma função para caracteres largos.
Comentários
Essas funções diferem de _vscprintf e _vscwprintf apenas porque suportam a capacidade de especificar a ordem em que os argumentos são usados. Para obter mais informações, consulte printf_p Parâmetros posicionais.
As versões dessas funções com o sufixo _l são idênticas, exceto que elas usam o parâmetro locale passado em vez da localidade thread atual.
Valor de retorno é o tamanho dos dados formatados. Se a função tiver um buffer char, o tamanho será em bytes. Se a função tiver um buffer wchar_t, o tamanho especifica o número de palavras de 16 bits.
Caracteres referem-se a char caracteres para funções que usam um buffer de char e a wchar_t caracteres para funções que usam um buffer wchar_t.
Se format for um ponteiro nulo, o manipulador de parâmetros inválido será invocado, conforme descrito em de validação de parâmetros. Se a execução for permitida para continuar, as funções retornam -1 e definem errno como EINVAL.
Importante
Certifique-se de que, se format for uma cadeia de caracteres definida pelo usuário, ela será terminada nula e terá o número e o tipo de parâmetros corretos. Para obter mais informações, consulte Evitando saturações de buffer.
A partir do Windows 10 versão 2004 (build 19041), a família printf de funções imprime números de ponto flutuante exatamente representáveis de acordo com as regras IEEE 754 para arredondamento. Em versões anteriores do Windows, números de ponto flutuante exatamente representáveis terminando em '5' sempre arredondavam para cima. IEEE 754 afirma que eles devem arredondar para o dígito par mais próximo (também conhecido como "Arredondamento do Banqueiro"). Por exemplo, tanto printf("%1.0f", 1.5) quanto printf("%1.0f", 2.5) devem arredondar para 2. Anteriormente, 1,5 arredondava para 2 e 2,5 arredondava para 3. Esta alteração afeta apenas números exatamente representáveis. Por exemplo, 2.35 (que, quando representado na memória, está mais próximo de 2.35000000000000008) continua a arredondar para 2.4. O arredondamento feito por essas funções agora também respeita o modo de arredondamento de ponto flutuante definido por fesetround. Anteriormente, o arredondamento sempre escolhia FE_TONEAREST comportamento. Essa alteração afeta apenas os programas criados usando o Visual Studio 2019 versão 16.2 e posterior. Para usar o comportamento de arredondamento de ponto flutuante herdado, vincule-se a legacy_stdio_float_rounding.obj.
Mapeamentos de rotina de texto genérico
| TCHAR. Rotina H |
_UNICODE e _MBCS não definidos |
_MBCS definido |
_UNICODE definido |
|---|---|---|---|
_vsctprintf_p |
_vscprintf_p |
_vscprintf_p |
_vscwprintf_p |
_vsctprintf_p_l |
_vscprintf_p_l |
_vscprintf_p_l |
_vscwprintf_p_l |
Requerimentos
| Rotina | Cabeçalho obrigatório |
|---|---|
_vscprintf_p, _vscprintf_p_l |
<stdio.h> |
_vscwprintf_p, _vscwprintf_p_l |
<stdio.h> ou <wchar.h> |
Para obter mais informações sobre compatibilidade, consulte de compatibilidade .
Exemplo
Veja o exemplo para vsprintf.
Ver também
vprintf funções
_scprintf_p, _scprintf_p_l, _scwprintf_p, _scwprintf_p_l
_vscprintf, _vscprintf_l, _vscwprintf, _vscwprintf_l