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