Compartilhar via


_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çaObservaçã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

System::Console::Write

Consulte também

Referência

E/S de fluxo

Funções vprintf

_cprintf, _cprintf_l, _cwprintf, _cwprintf_l

fprintf, _fprintf_l, fwprintf, _fwprintf_l

printf, _printf_l, wprintf, _wprintf_l

sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l

va_arg, va_copy, va_end, va_start