_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ż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ń |
---|
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
Zobacz też
Informacje
_cprintf, _cprintf_l, _cwprintf, _cwprintf_l
fprintf, _fprintf_l, fwprintf, _fwprintf_l
printf, _printf_l, wprintf, _wprintf_l