Printf (jazyk C): Rozdiel medzi revíziami
d |
d |
||
Riadok 12: | Riadok 12: | ||
</source> | </source> | ||
==Podrobný popis funkcie== | ==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,... | + | 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== | ==Parametre== | ||
− | ;format: formát vypísaných dát. Tabuľka formátovacích znakov je nižšie. | + | ;''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. | + | ;''...'': ďalšie premenné, ktoré sú použité vo formáte. |
+ | |||
+ | '''Tvar formátu:''' ''%[flags][šírka][.presnosť][dĺžka]formátovací znak'' (''[]'' označujú, že daný špecifikátor je voliteľný) | ||
Tabuľka formátovacích znakov: | Tabuľka formátovacích znakov: | ||
Riadok 22: | Riadok 24: | ||
! formátovací znak !! Výstup !! Príklad | ! formátovací znak !! Výstup !! Príklad | ||
|- | |- | ||
− | | d alebo i || Celé dekadické číslo (napr. int) || 392 | + | | ''d'' alebo ''i'' || Celé dekadické číslo (napr. ''int'') || 392 |
|- | |- | ||
− | | u || Prirodzené dekadické číslo (napr. unsigned int) || 7235 | + | | ''u'' || Prirodzené dekadické číslo (napr. ''unsigned int'') || 7235 |
|- | |- | ||
− | | o || Prirodzené oktagonálne číslo (osmičková sústava) || 610 | + | | ''o'' || Prirodzené oktagonálne číslo (osmičková sústava) || 610 |
|- | |- | ||
− | | x || Prirodzené hexadecimálne číslo || 7fa | + | | ''x'' || Prirodzené hexadecimálne číslo || 7fa |
|- | |- | ||
− | | X || Prirodzené hexadecimálne číslo (veľké písmená) || 7FA | + | | ''X'' || Prirodzené hexadecimálne číslo (veľké písmená) || 7FA |
|- | |- | ||
− | | f || Racionálne číslo, malé písmená || 392.65 | + | | ''f'' || Racionálne číslo, malé písmená || 392.65 |
|- | |- | ||
− | | F || Racionálne číslo, veľké 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), malé písmená || 3.9265e+2 |
|- | |- | ||
− | | E || Vedecký zápis (mantissa/exponent), veľké 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 |
|- | |- | ||
− | | 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, malé písmená || -0xc.90fep-2 |
|- | |- | ||
− | | A || Hexadecimálne racionálne číslo, veľké písmená || -0XC.90FEP-2 | + | | ''A'' || Hexadecimálne racionálne číslo, veľké písmená || -0XC.90FEP-2 |
|- | |- | ||
− | | c || Znak || a | + | | ''c'' || Znak || a |
|- | |- | ||
− | | s || Textový reťazec || priklad | + | | ''s'' || Textový reťazec || priklad |
|- | |- | ||
− | | p || Adresa smerníka || b8000000 | + | | ''p'' || Adresa smerníka || b8000000 |
|- | |- | ||
− | | n || Nič nevypíše. Zodpovedajúci argument musí byť smerníkom na signed int. | + | | ''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. ||   | Počet doteraz napísaných znakov sa potom uloží na toto miesto. ||   | ||
|- | |- | ||
− | | % || % nasledované ďalším % vypíše iba jedno %. || % | + | | ''%'' || ''%'' nasledované ďalším ''%'' vypíše iba jedno ''%''. || % |
|} | |} | ||
Riadok 91: | Riadok 93: | ||
| || || long double || || || || | | || || long double || || || || | ||
|} | |} | ||
+ | <ref>http://www.cplusplus.com/reference/cstdio/printf/</ref> | ||
==Návratová hodnota== | ==Návratová hodnota== | ||
Riadok 96: | Riadok 99: | ||
Po úspechu sa vráti celkový počet vypísaných znakov. | 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. | + | 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.<ref>https://www.tutorialspoint.com/c_standard_library/c_function_printf.htm</ref> |
==Príklad== | ==Príklad== | ||
Riadok 133: | Riadok 136: | ||
Toto je cislo 0000000020 | Toto je cislo 0000000020 | ||
Desatinne cislo: 3.15 +3e+00 3.146000E+00 | Desatinne cislo: 3.15 +3e+00 3.146000E+00 | ||
+ | |||
+ | ==Zdroje== |
Verzia zo dňa a času 15:41, 21. apríl 2020
<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.
Tvar formátu: %[flags][šírka][.presnosť][dĺžka]formátovací znak ([] označujú, že daný špecifikátor je voliteľný)
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.[2]
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