Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Formázott kimenetet ír az argumentumok listájára mutató mutatóval. A függvények biztonságosabb verziói érhetők el, lásd vprintf_s: , _vprintf_s_l, vwprintf_s, _vwprintf_s_l.
Szemantika
int vprintf(
const char *format,
va_list argptr
);
int _vprintf_l(
const char *format,
_locale_t locale,
va_list argptr
);
int vwprintf(
const wchar_t *format,
va_list argptr
);
int _vwprintf_l(
const wchar_t *format,
_locale_t locale,
va_list argptr
);
Paraméterek
format
Formátum specifikáció.
argptr
Mutató az argumentumok listájára.
locale
A használni kívánt területi beállítás.
További információ: Formátumspecifikáció szintaxisa.
Visszaadott érték
vprintf és vwprintf adja vissza az írott karakterek számát, a befejező null karaktert nem beleértve, vagy negatív értéket, ha kimeneti hiba történik. Ha format null mutató, vagy ha a formázási sztring érvénytelen formázási karaktereket tartalmaz, a rendszer meghívja az érvénytelen paraméterkezelőt a paraméterérvényesítésben leírtak szerint. Ha a végrehajtás folytatódhat, a függvények visszaadják a -1 és a következőre állítják beerrno: EINVAL .
Ezekről és más hibakódokról további információt a errno, _doserrno, _sys_errlistés a _sys_nerr.
Megjegyzések
Mindegyik függvény egy argumentumlistára mutató mutatót használ, majd formázja és beírja a megadott adatokat stdout.
vwprintf a széles karakterű verzió vprintf; a két függvény ugyanúgy viselkedik, ha a stream ANSI módban van megnyitva.
vprintf jelenleg nem támogatja a UNICODE-streamek kimenetét.
Ezeknek a függvényeknek az utótaggal ellátott _l verziói azonosak, azzal a különbséggel, hogy az aktuális szál területi beállítása helyett a területi paramétert használják.
Fontos
Győződjön meg arról, hogy format ez nem felhasználó által definiált sztring. További információ: Puffertúllépések elkerülése. A rendszer érvénytelen formázási sztringeket észlel, és hibát eredményez.
A Windows 10 2004-es verziójától kezdve (19041-es build) a printf függvénycsalád pontosan ábrázolható lebegőpontos számokat nyomtat az IEEE 754 kerekítési szabályainak megfelelően. A Windows korábbi verzióiban az "5" végződésű lebegőpontos számok mindig felfelé kerekülnek. Az IEEE 754 szerint a legközelebbi páros számjegyre kell kerekíteniük (más néven "Banker kerekítése"). Például mindkettőt printf("%1.0f", 1.5) , és printf("%1.0f", 2.5) 2-re kell kerekítenie. Korábban az 1,5 2-et, a 2,5-öt pedig 3-ra kerekítené. Ez a változás csak a pontosan ábrázolható számokat érinti. Például a 2.35 (amely a memóriában ábrázolva közelebb van a 2.35000000000008-hoz) továbbra is 2,4-re kerekít. A függvények által végzett kerekítés mostantól a lebegőpontos kerekítési fesetroundmódot is figyelembe követi. Korábban a kerekítés mindig a viselkedést választotta FE_TONEAREST . Ez a módosítás csak a Visual Studio 2019 16.2-es és újabb verziójával készült programokat érinti. Az örökölt lebegőpontos kerekítési viselkedés használatához csatolja a legacy_stdio_float_rounding.obj.
Általános szöveges rutinleképezések
| TCHAR. H rutin |
_UNICODE és _MBCS nincs definiálva |
_MBCS definiálva |
_UNICODE definiálva |
|---|---|---|---|
_vtprintf |
vprintf |
vprintf |
vwprintf |
_vtprintf_l |
_vprintf_l |
_vprintf_l |
_vwprintf_l |
Követelmények
| Rutin | Kötelező fejléc | Nem kötelező fejlécek |
|---|---|---|
vprintf, _vprintf_l |
<stdio.h> és stdarg.h <> | <varargs.h>* |
vwprintf, _vwprintf_l |
<stdio.h> vagy <wchar.h>, és <stdarg.h> | <varargs.h>* |
* A UNIX V kompatibilitáshoz szükséges.
A konzol nem támogatott az Univerzális Windows Platform (UWP) alkalmazásokban. A konzolhoz stdinstdouttársított standard streamfogantyúkat , és stderra C futásidejű függvények UWP-alkalmazásokban való használatához át kell irányítani. További kompatibilitási információkért lásd: Kompatibilitás.
Lásd még
Stream I/O-
vprintf funkciók
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_endva_start