Udostępnij za pośrednictwem


_vcprintf_s, _vcprintf_s_l, _vcwprintf_s, _vcwprintf_s_l

Wpisuje sformatowane dane wyjściowe to konsoli za pomocą wskaźnika do listy argumentów.Te wersje _vcprintf, _vcprintf_l, _vcwprintf, _vcwprintf_l mają wzmocnienia zabezpieczeń, jak opisano w Funkcje zabezpieczeń w CRT.

Ważna uwagaWażne

Tego API nie można używać w aplikacjach korzystających ze środowiska wykonawczego Windows.Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane przez /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
);

Parametry

  • format
    Format specyfikacji.

  • argptr
    Wskaźnik na listę argumentów.

  • locale
    Ustawienia regionalne do użycia.

Aby uzyskać więcej informacji, zobacz Składnia specyfikacji formatu: funkcje printf i wprintf.

Wartość zwracana

Liczba znaków pisanych lub wartość ujemna, jeśli wystąpi błąd danych wyjściowych.

Podobnie jak mniej bezpieczne wersje tych funkcji, jeśli format jest wskaźnikiem typu null, zostanie wywołana procedura obsługi nieprawidłowego parametru, jak opisano w Sprawdzanie poprawności parametru.Ponadto, w przeciwieństwie do mniej bezpiecznych wersji tych funkcji, jeśli format nie określa prawidłowego formatu, generowany jest wyjątek nieprawidłowego parametru.Jeśli wykonanie może być kontynuowane, te funkcje zwracają kod błędu i ustawiają errno do tego kodu błędu.Domyślny kod błędu to EINVAL jeśli bardziej określona wartość nie jest stosowana.

Uwagi

Każda z tych funkcji pobiera wskaźnik do listy argumentów, a następnie formatuje i zapisuje dostarczone dane do konsoli._vcwprintf_s to wersja znaków dwubajtowych _vcprintf_s.Pobiera ciąg znaków dwubajtowych jako argument.

Wersje tych funkcji, które mają przyrostek _l są identyczne, z tą różnicą, że korzystają z przekazanego parametru ustawień regionalnych, zamiast bieżących ustawień regionalnych.

Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

Zapewnienia, że format nie jest ciągiem zdefiniowanym przez użytkownika.Aby uzyskać więcej informacji, zobacz unikanie przekroczenia buforu.

Rutynowe mapowania zwykłego tekstu

Procedura Tchar.h

_UNICODE & _MBCS nie zdefiniowano

_MBCS zdefiniowano

_UNICODE zdefiniowany

_vtcprintf_s

_vcprintf_s

_vcprintf_s

_vcwprintf_s

_vtcprintf_s_l

_vcprintf_s_l

_vcprintf_s_l

_vcwprintf_s_l

Wymagania

Procedura

Wymagany nagłówek

Opcjonalne nagłówki

_vcprintf_s, _vcprintf_s_l

<conio.h> i <stdarg.h>

<varargs.h>*

_vcwprintf_s, _vcwprintf_s_l

<conio.h> lub <wchar.h> i <stdarg.h>

<varargs.h>*

* Wymagane dla zgodności systemu UNIX V.

Dodatkowe informacje o zgodności – zobacz: Zgodność.

Przykład

// 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 );
}
  

Odpowiednik w programie .NET Framework

System::Console::Write

Zobacz też

Informacje

We/Wy strumienia

vprintf — Funkcje

_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