* Způsobí, že fprintf vyplní výstup, dokud nebude široký n znaků, kde n je celočíselná hodnota uložená v argumentu funkce právě předcházejícím představovanému upraveným typem.
printf("%*d", 5, 10) //will result in "10" being printed with a width of 5.
Všechny odpovědi
Používá se k dynamickému určení, jaká je šířka pole:
"indent" tedy určuje, kolik místa alokovat pro řetězec, který za ním následuje v seznamu parametrů.
Tak,
je stejné jako
Je to příjemný způsob, jak vložit do souboru nějaké mezery a vyhnout se smyčce.
Nepoužívejte "% * s" na vyrovnávací paměť, která není ukončena (zabalena) NULL, protože si myslí, že bude tisknout pouze pole "délka".
Specifikátor formátu% 4s odešle řetězec v šířce pole 4 - to znamená, že printf zobrazí hodnotu s alespoň 4 pozicemi znaků.
Pokud je výstupní hodnota
less
než 4 pozice znaků široké, hodnota jeright justified
ve výchozím nastavení v poli.Pokud je hodnota
greater
široký než 4 pozice znaků, šířka poleexpands
přizpůsobit odpovídající počet znaků.Chcete-li hodnotu zarovnat doleva, použijte záporné celé číslo k určení šířky pole.
Reference:Java ™ How To Program (Early Objects), desáté vydání
* Způsobí, že fprintf vyplní výstup, dokud nebude široký n znaků, kde n je celočíselná hodnota uložená v argumentu funkce právě předcházejícím představovanému upraveným typem.
http://www.cplusplus.com/reference/clibrary/cstdio/printf/
např:
printf("%*s", 4, myValue);
odpovídáprintf("%4s", myValue);
.Leave a Reply