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 a konzolra az argumentumok listájára mutató mutatóval. A függvények biztonságosabb verziói érhetők el, lásd _vcprintf_s: , _vcprintf_s_l, _vcwprintf_s, _vcwprintf_s_l.
Fontos
Ez az API nem használható a Windows futtatókörnyezetben futó alkalmazásokban. További információ: A CRT-függvények nem támogatottak az univerzális Windows Platform-alkalmazásokban.
Szemantika
int _vcprintf(
const char* format,
va_list argptr
);
int _vcprintf_l(
const char* format,
_locale_t locale,
va_list argptr
);
int _vcwprintf(
const wchar_t* format,
va_list argptr
);
int _vcwprintf_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
Az írott karakterek száma, vagy negatív érték, ha kimeneti hiba történik. Ha format null mutató, a rendszer meghívja az érvénytelen paraméterkezelőt, ahogy azt a Paraméterérvényesítésicímű cikk ismerteti. Ha a végrehajtás folytatva van, a rendszer a következőre EINVALvan állítva, errno és -1 ad vissza.
Megjegyzések
Ezek a függvények egy-egy argumentumlistára mutató mutatót használnak, majd formáznak és írnak a megadott adatokat a konzolra.
_vcwprintf A () _vcprintfszéles karakterű verziója. Argumentumként egy széles karakterű sztringet használ.
Ezeknek a függvényeknek az _l utótaggal rendelkező verziói azonosak, azzal a kivétellel, hogy az aktuális területi beállítás helyett a megadott 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 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 |
|---|---|---|---|
_vtcprintf |
_vcprintf |
_vcprintf |
_vcwprintf |
_vtcprintf_l |
_vcprintf_l |
_vcprintf_l |
_vcwprintf_l |
Követelmények
| Rutin | Kötelező fejléc | Nem kötelező fejlécek |
|---|---|---|
_vcprintf, _vcprintf_l |
<conio.h> és <stdarg.h> | <varargs.h>* |
_vcwprintf, _vcwprintf_l |
<conio.h> vagy <wchar.h>, és <stdarg.h> | <varargs.h>* |
* A UNIX V kompatibilitáshoz szükséges.
További kompatibilitási információkért lásd: Kompatibilitás.
példa
// crt_vcprintf.cpp
#include <conio.h>
#include <stdarg.h>
// An error formatting function used to print to the console.
int eprintf(const char* format, ...)
{
va_list args;
va_start(args, format);
int result = _vcprintf(format, args);
va_end(args);
return result;
}
int main()
{
eprintf("(%d:%d): Error %s%d : %s\n", 10, 23, "C", 2111,
"<some error text>");
eprintf(" (Related to symbol '%s' defined on line %d).\n",
"<symbol>", 5 );
}
(10,23): Error C2111 : <some error text>
(Related to symbol '<symbol>' defined on line 5).
Lásd még
Stream I/O-
vprintf funkciók
_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_endva_start