Konštanty a funkcia printf()
#include <stdio.h>
main ()
{
printf ("Hello, vole!\n");
printf ("%c %u %x %o %s\n", 'c', 0x1f, 076, 1234, "EHLO!");
}
Argumentami funkcie môžu byť (okrem iného) konštanty. Konštanty sú údaje, ktoré sú priamo súčasťu textu programu. V jazyku C existujú znakové, reťazcové a číselné konštanty.
Číselné konštanty
Číselné konštanty môžeme zapisovať v osmičkovej (oktalovej), desiatkovej (dekadickej/decimálnej) alebo šestnásťkovej (hexadecimálnej) sústave.
- Pokiaľ konštanta začína číslicou v rozsahu <1,9>, považuje sa za desiatkovú. Napríklad 8086.
- Ak začína nulou nasledovanou číslicou <1,7> ide o osmičkovú konštantu. Napríklad 0666.
- Konštanta začínajúca dvojicou znakov '0x' je šestnásťková. Napríklad 0x4b4dc0d3
Znakové konštanty
Znaková konštanta je znak (číslo, písmeno, biely znak, ...) uzavretý v apostrofoch. Napríklad 'A'. Niektoré znaky nie je možné, alebo vhodné, uzatvárať do apostrofov. Ide napríklad o znak konca riadku, alebo apostrof samotný. Vtedy môžme použiť tzv. escape znak -- obrátené lomítko. Obrátené lomítko mení význam nasledujúceho znaku.
Asi takto:| \n | koniec riadku |
|---|---|
| \r | backspace |
| \t | tabulátor |
| \' | apostrof |
| \\ | obrátené lomítko |
Reťazcové konštanty
Reťazec je množina (pole) znakov. Reťazcová konštanta pozostáva so znakov uzavretých do úvodzoviek. Pre jednotlivé znaky platí to isté čo pri znakových konštantách (escape-znaky). Napríklad "Those who in quarrels interpose,\nmust often wipe a bloody nose.".
Funkcia printf()
Podľa dokumentácie k funkcii printf() má funkcia printf() jeden, alebo viac argumentov, z ktorých prvý je tzv. formátovací reťazec. Formátovací reťazec sa skopíruje na výstup, pričom sekvencie začínajúce znakom % nahradí hodnotou nasledujúceho argumentu v formáte určenou touto sekvenciou, tzv. formátovacím špecifikátorom:
| %i | Celé číslo v desatkovej sústave |
|---|---|
| %u | Kladné číslo v desatkovej sústave |
| %o | Kladné číslo v osmičkokovej číselnej sústave |
| %x | Kladné číslo v šestnásťkovej číselnej sústave |
| %c | Znak |
| %s | Reťazec |
Formátovacíck špecifikátorov musí byť v formátovacom reťazci práve toľko, koľko argumentov má funkcia printf() za formátovacím reťazcom. Ak toto nedodržíme, dopúšťame sa vážnej chyby, a mnoho kompilátorov nás na túto skutočnosť neupozorní (nakoľko sa nejedná o syntaktickú chybu).