C programozás/Kiíratás és beolvasás
Helyfoglalók
[szerkesztés]A printf függvény első paraméterként egy formátum-karakterláncot vár, a további paraméterek valamilyen további adatok lehetnek, amelyek helyét a kiíratáskor helyfoglalók határozzák meg. Például az alábbi esetben úgy kerül kiíratásra a szöveg, hogy a %d helyére a második paraméter értéke, egy egész szám, kerül be decimális számként.
printf("19+31 eredménye %d", 19+31);
A %d helyfoglaló "helyet foglal le" az aktuális egész szám (itt a 19 és a 31 összege) számára. A fenti utasítás hatására ez jelenik meg:
19+31 eredménye 50
Ahány paraméter szerepel a formátumjelző karakterlánc után, általában annyi helyfoglalónak kell szerepelnie a formátumjelző karakterláncban. Például:
printf("52 hétben %d nap és %d óra van\n", 52*7, 52*7*24)
Fontosabb helyfoglalók:
- %d - egész (int) (vagy %i)
- %f - float
- %c - karakter
- %s - karakterlánc
- %x - egész hexadecimális alakban
A változók kiírásának formája pontosítható. A lehetőségeknek csak kis részét mutatja be ez a fejezet. A % és a típust jelentő karakter közé írt egész szám meghatározza, hogy hány karakter széles helyre írja ki a szöveget a program. A lebegőpontos szám esetén az eredeti szám után, ponttal elválasztva, még egy számot írunk, az adja meg a tizedespont utáni tizedeshelyek számát. Az alábbi példában az egész számot 5 karakteren, a lebegőpontos számot 10 karakteren ábrázolja jobbra igazítva úgy, hogy két tizedesjegy pontossággal.
float sebesseg=30.0; // km/h
int sorszam=4;
float ido=7 // h
printf("%5d. nap %10.2f kilométert tett meg\n", sorszam, sebesseg*ido);
A 4-es előtt tehát 4 szóköz lesz a kimenetben, a kiírt lebegőpontos szám 5 látható karaktere előtt pedig 5 szóköz a %10.2f miatt és még egy a formátumjelző karakterlánc szóköze miatt:
4. nap 210.00 kilométert tett meg