_vcprintf_s, _vcprintf_s_l, _vcwprintf_s, _vcwprintf_s_l
Grava a saída formatada para o console usando um ponteiro para uma lista de argumentos. Essas versões de _vcprintf, _vcprintf_l, _vcwprintf, _vcwprintf_l têm aprimoramentos de segurança, como descrito em Recursos de segurança no CRT.
Importante
Esta API não pode ser usada em aplicativos que executam no Tempo de Execução do Windows.Para obter mais informações, consulte Funções CRT sem suporte pelo /ZW.
int _vcprintf(
const char* format,
va_list argptr
);
int _vcprintf(
const char* format,
locale_t locale,
va_list argptr
);
int _vcwprintf_s(
const wchar_t* format,
va_list argptr
);
int _vcwprintf_s_l(
const wchar_t* format,
locale_t locale,
va_list argptr
);
Parâmetros
format
Especificação 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: funções printf e and wprintf.
Valor de retorno
O número de caracteres gravados ou um valor negativo, caso ocorra um erro de saída.
Assim como as versões menos seguras dessas funções, se format for um ponteiro nulo, o manipulador de parâmetro inválido será chamado, conforme descrito em Validação do parâmetro. Além disso, ao contrário das versões menos seguras dessas funções, se format não especificar um formato válido, é gerada uma exceção de parâmetro inválido. Se a exceção puder continuar, essas funções retornarão um código de erro e definirão errno como código de erro. O código de erro padrão é EINVAL se um valor mais específico não se aplicar.
Comentários
Cada uma dessas funções leva um ponteiro a uma lista de argumentos e, em seguida, formata e grava os dados fornecidos no console. _vcwprintf_s é a versão de caracteres largos de _vcprintf_s. Usa uma cadeia de caracteres largos como um argumento.
As versões dessas funções que têm o sufixo _l são idênticas, exceto que elas usam o parâmetro de localidade informado em vez da localidade atual.
Observação de segurança |
---|
Verifique se format não é uma cadeia de caracteres definida pelo usuário.Para obter mais informações, consulte Evitando saturações de buffer. |
Mapeamentos da rotina de texto genérico
Rotina TCHAR.H |
_UNICODE & _MBCS não definido |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_vtcprintf_s |
_vcprintf_s |
_vcprintf_s |
_vcwprintf_s |
_vtcprintf_s_l |
_vcprintf_s_l |
_vcprintf_s_l |
_vcwprintf_s_l |
Requisitos
Rotina |
Cabeçalho necessário |
Cabeçalhos opcionais |
---|---|---|
_vcprintf_s, _vcprintf_s_l |
<conio.h> e <stdarg.h> |
<varargs.h>* |
_vcwprintf_s, _vcwprintf_s_l |
<conio.h> ou <wchar.h> e <stdarg.h> |
<varargs.h>* |
* Necessário para a compatibilidade de UNIX V.
Para obter informações adicionais sobre compatibilidade, consulte Compatibilidade.
Exemplo
// crt_vcprintf_s.cpp
#include <conio.h>
#include <stdarg.h>
// An error formatting function used to print to the console.
int eprintf_s(const char* format, ...)
{
va_list args;
va_start(args, format);
return _vcprintf_s(format, args);
}
int main()
{
eprintf_s(" (%d:%d): Error %s%d : %s\n", 10, 23, "C", 2111,
"<some error text>");
eprintf_s(" (Related to symbol '%s' defined on line %d).\n",
"<symbol>", 5 );
}
Equivalência do .NET Framework
Consulte também
Referência
_cprintf, _cprintf_l, _cwprintf, _cwprintf_l
fprintf, _fprintf_l, fwprintf, _fwprintf_l
printf, _printf_l, wprintf, _wprintf_l