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.
Sintaxe
int _vscprintf(
const char *format,
va_list argptr
);
int _vscprintf_l(
const char *format,
_locale_t locale,
va_list argptr
);
int _vscwprintf(
const wchar_t *format,
va_list argptr
);
int _vscwprintf_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 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 executa a mesma função para caracteres largos.
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.
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.
Comentários
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.
Cada argument (se houver) é convertido de acordo com a especificação de formato correspondente em format. O formato consiste em caracteres comuns e tem a mesma forma e função que o argumento format para printf.
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 |
_vscprintf |
_vscprintf |
_vscwprintf |
_vsctprintf_l |
_vscprintf_l |
_vscprintf_l |
_vscwprintf_l |
Requerimentos
| Rotina | Cabeçalho obrigatório |
|---|---|
_vscprintf, _vscprintf_l |
<stdio.h> |
_vscwprintf, _vscwprintf_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
de E/S de fluxo
fprintf, _fprintf_l, fwprintf, _fwprintf_l
printf, _printf_l, wprintf, _wprintf_l
scanf, _scanf_l, wscanf, _wscanf_l
sscanf, _sscanf_l, swscanf, _swscanf_l
vprintf funções