Syntaxe specifikace formátu: funkce printf a wprintf
Popisuje syntaxi pro formát řetězcové argumenty pro printf, wprintfa související funkce.Bezpečnější verze tyto funkce jsou k dispozici; Další informace naleznete v tématu Funkce zabezpečení v CRT.Informace o jednotlivých funkcích naleznete v dokumentaci pro tyto specifické funkce.Seznam těchto funkcí naleznete v Proud I/O.
Specifikace formátu, sestávající z volitelné a povinné pole má následující tvar:
%flags] width] .precision [{h | l | ll | w | I | I32 | I64}] type
Každé pole Specifikace formátu je znak nebo číslo, které označuje konkrétní možnost nebo převodu specifikátor formátu.Požadované type znak určuje druh převodu u argumentu.Nepovinný flags, width, a precision pole určit formát další aspekty.Specifikace základní formát obsahuje pouze znak procenta a type znak – například %s, který určuje převodu řetězce.Je-li znak procenta následuje znak, který nemá žádný význam jako formát pole, znak je zkopírován do výstupu nezměněna.Znak znak procenta při tisku, použijte %%.
Pole Specifikace formátu ovládacího prvku následující aspekty argumentu Převod a formátování:
type
Požadovaný převod specifikátor znak, který určuje, zda přidruženého argument je interpretován jako znak, řetězec, celé číslo nebo číslo s plovoucí desetinnou čárkou.Další informace naleznete v tématu printf znaky pole Typ.flags
Nepovinný znak nebo znaky, zdůvodnění výstup a výstup značení, prázdné buňky, úvodní nuly, desetinné čárky, osmičková a šestnáctková předpony.Další informace naleznete v tématu Příznak směrnic.Více než jeden příznak se může zobrazit ve specifikaci formátu a příznaky se mohou objevit v libovolném pořadí.width
Volitelné desetinné číslo, které určuje minimální počet znaků, které jsou výstup.Další informace naleznete v tématu Šířka specifikace printf.precision
Volitelné desetinné číslo, které určuje maximální počet znaků, které se tisknou pro řetězce, počet platných číslic nebo počet číslic za desetinnou čárkou-znak hodnoty plovoucí desetinné čárky nebo minimální počet číslic, které se tisknou pro celočíselné hodnoty.Další informace naleznete v tématu "Jak přesnost hodnoty vliv typu" v Přesné specifikace..h | l | ll | w | I | I32 | I64
Volitelné předpony pro type určující velikost odpovídající argument.Další informace naleznete v tématu "zadání předpony velikost souladu" v Velikost specifikace.
Poznámka k zabezpečení |
---|
Ujistěte se, že specifikace formátu řetězce nejsou definované uživatelem.Zvažte například program, který vyzve uživatele k zadání názvu a ukládá vstupní proměnné řetězce s názvem name.Chcete-li vytisknout name, to provést: printf( name ); /* Danger! If name contains "%s", program will crash */ Místo toho postupujte následujícím způsobem: printf( "%s", name ); |
Viz také
Referenční dokumentace
printf, _printf_l, wprintf, _wprintf_l