Printf (jazyk C)
<ctype.h> | <limits.h> | <stdio.h> | <stdlib.h> | <math.h> | <string.h> | <time.h> |
---|---|---|---|---|---|---|
isalnum |
printf |
system |
Funkcia system
knižnica | stdio.h |
popis | Vypíše dáta na monitor |
Úplný funkčný prototyp:
int printf(const char *format, ...);
Podrobný popis funkcie
Táto funkcia vypíše dáta na monitor (do štandardizovaného výstupu stdout) z rôznych typov premenných: int, char, char[], byte, float, double,...
Parametre
- format
- formát vypísaných dát. Tabuľka formátovacích znakov je nižšie.
- ...
- ďalšie premenné, ktoré sú použité vo formáte.
Tabuľka formátovacích znakov:
formátovací znak | Výstup | Príklad |
---|---|---|
d alebo i | Celé dekadické číslo (napr. int) | 392 |
u | Prirodzené dekadické číslo (napr. unsigned int) | 7235 |
o | Prirodzené oktagonálne číslo (osmičková sústava) | 610 |
x | Prirodzené hexadecimálne číslo | 7fa |
X | Prirodzené hexadecimálne číslo (veľké písmená) | 7FA |
f | Racionálne číslo, malé písmená | 392.65 |
F | Racionálne číslo, veľké písmená | 392.65 |
e | Vedecký zápis (mantissa/exponent), malé písmená | 3.9265e+2 |
E | Vedecký zápis (mantissa/exponent), veľké písmená | 3.9265E+2 |
g | Použije kratší zápis: %e or %f | 392.65 |
G | Použije kratší zápis: %E or %F | 392.65 |
a | Hexadecimálne racionálne číslo, malé písmená | -0xc.90fep-2 |
A | Hexadecimálne racionálne číslo, veľké písmená | -0XC.90FEP-2 |
c | Znak | a |
s | Textový reťazec | priklad |
p | Adresa smerníka | b8000000 |
n | Nič nevypíše. Zodpovedajúci argument musí byť smerníkom na signed int.
Počet doteraz napísaných znakov sa potom uloží na toto miesto. ||   | |
% | % nasledované ďalším % vypíše iba jedno %. | % |
Tabuľka použitia premenných a formátovacích znakov:
dĺžka | d i | u o x X | f F e E g G a A | c | s | p | n |
---|---|---|---|---|---|---|---|
(žiadna) | int | unsigned int | double | int | char* | void* | int* |
hh | signed char | unsigned char | signed char* | ||||
h | short int | unsigned short int | short int* | ||||
l | long int | unsigned long int | wint_t | wchar_t* | long int* | ||
ll | long long int | unsigned long long int | long long int* | ||||
j | intmax_t | uintmax_t | intmax_t* | ||||
z | size_t | size_t | size_t* | ||||
t | ptrdiff_t | ptrdiff_t | ptrdiff_t* | ||||
L | long double |
Návratová hodnota
Po úspechu sa vráti celkový počet vypísaných znakov.
Ak nastala chyba počas zápisu, indikátor chyby (ferror) je zapísaný a následne je vrátené záporné číslo označujúce chybu.
Príklad
1 #include <stdio.h>
2
3 int main()
4 {
5 printf("TEXT\n"); //vypíše len text a nový riadok
6 char text[] = "Text2";
7 printf("Toto je text: %s\n", text); //vypíše sa text "Toto je text: ", pole znakov a nový riadok
8 printf("Toto je znak %c\n", 'a'); //Vypíše sa text "Toto je znak ", znak 'a' a nový riadok
9 printf("Toto je cislo znaku v ASCII %d\n", 'a'); //Vypíše sa text "Toto je číslo znaku v ASCII ", číslo znaku 'a' v ASCII a nový riadok
10 printf("%d\n",25); //Vypíše sa číslo 25 a nový riadok
11 printf("Toto je cislo %d", 9); //Vypíše sa text "Toto je číslo " a za ním sa vypíše číslo 9
12 printf("\n"); //Vypíše sa nový riadok
13 printf("Toto je cislo %10d", 18); //Vypíše sa text "Toto je číslo " a za ním sa vypíše číslo 18 s počtom znakov 10 (pred číslom bude 8 medzier + 1 ktorá je zadaná v texte)
14 printf("\n"); //Vypíše sa nový riadok
15 printf("Toto je cislo %010d", 20); //Vypíše sa text "Toto je číslo " a za ním sa vypíše číslo 20 s počtom znakov 10 (pred číslom bude 8 núl)
16 printf("\n"); //Vypíše sa nový riadok
17 printf("Desatinne cislo: %4.2f %+.0e %E\n", 3.146, 3.146, 3.146); //Vypíše sa text "Desatinne cislo: " za ním desatinné číslo s dvomi ciframi pred čiarkou a so štyrmi za.
18 //Za ním nasleduje medzera a číslo v tvare +3e+000, za ním medzera a číslo v tvare 3.141600E+000 a na konci nový riadok
19
20 return 0;
21 }
Výstup:
TEXT Toto je text: Text2 Toto je znak a Toto je cislo znaku v ASCII 97 25 Toto je cislo 9 Toto je cislo 18 Toto je cislo 0000000020 Desatinne cislo: 3.15 +3e+00 3.146000E+00