printf v C
V jazyce C se funkce printf() používá k tisku formátovaného výstupu na standardní výstup stdout (což je obecně obrazovka konzoly). Funkce printf je součástí standardní knihovny jazyka C < stdio.h> a může umožnit formátování výstupu mnoha způsoby.
Syntaxe printf
printf ( ' formatted_string ', arguments_list);
Parametry
- formatted_string: Je to řetězec, který specifikuje data, která mají být vytištěna. Může také obsahovat specifikátor formátu pro tisk hodnoty libovolné proměnné, jako je znak a celé číslo. arguments_list: Toto jsou názvy proměnných odpovídající specifikátoru formátu.
Návratová hodnota
- printf() vrací počet znaků vytištěných po úspěšném provedení.
- Pokud dojde k chybě, vrátí se záporná hodnota.
Příklad printf
V tomto příkladu tiskneme řetězec Hello Geek! ve výstupu pomocí funkce printf(). Ve funkci printf() je na výstupu vytištěno, co napíšeme do dvojitých uvozovek ().
C
// C program to illustrate the use of printf function> #include> int> main()> {> > // using printf to print 'Hello Geek!'> > printf> (> 'Hello Geek!'> );> > return> 0;> }> |
Výstup
Hello Geek!
Formátování v C printf
V C může být hodnotou typ znaku, typ celého čísla, typ float atd. Pro zobrazení a formátování těchto hodnot pomocí printf máme specifikátory formátu, které se používají ve formátovaném řetězci. Tyto specifikátory formátu začínají symbolem procent '%'.
Syntaxe specifikátoru formátu
%[flags][width][.precision][length]specifier
1. Specifikátor
Je to znak, který označuje typ dat. Některé běžně používané specifikátory jsou:
- %d : pro tisk celých čísel %f : pro tisk čísel s plovoucí desetinnou čárkou %c: pro tisk znaků %s: pro tisk řetězců %p: pro tisk adres paměti %x : pro tisk hexadecimálních hodnot
Příklad
printf(' %c ', char_variable ); 2. Šířka
Je to dílčí specifikátor, který označuje minimální počet znaků, které budou vytištěny.
Pokud je počet znaků menší než zadaná šířka, použije se k vyplnění míst zbývajících znaků bílé místo. Pokud je však počet znaků větší než zadaná šířka, všechny znaky se vytisknou, aniž by byly nějaké oříznuty.
Příklad
printf('% 25 s', some_string ); nebo
printf('% * s', 25 , some_string ); 3. Přesnost
Význam dílčího specifikátoru přesnosti se u různých specifikátorů formátu, se kterými se používá, liší.
- Pro integrální data (d, i, u, o, x, X): Určuje minimální počet číslic, které se mají vytisknout. Ale na rozdíl od dílčího specifikátoru šířky místo bílých mezer tento dílčí specifikátor přidává k číslu úvodní nuly. Pokud má číslo více číslic, než je přesnost, vytiskne se číslo tak, jak je. Pro plovoucí nebo dvojitá data(f, e, a, A) : Určuje počet číslic, které se mají vytisknout za desetinnou čárkou. Pro řetězec (s): Určuje délku řetězce, který se má vytisknout.
Příklad
printf('% .10 d', some_integer ); printf('% .3f ', some_float ); printf('% .25 s', some_string) ; nebo
printf('% .* d', 10 , some_integer ); printf('% .* f', 3 , some_float ); printf('% .* s', 25 , some_string ); 4. Délka
Určuje délku datového typu v paměti. Používá se v korespondenci s C
// C program to print a variable> #include> int> main()> {> > int> num1 = 99;> > int> num2 = 1;> > printf> (> 'The sum of %d and %d is %d
'> , num1, num2,> > num1 + num2);> > return> 0;> }> |
Výstup
The sum of 99 and 1 is 100
Příklad 2: printf se specifikovanou šířkou
V tomto příkladu zadáme šířku výstupu, který bude vytištěn funkcí printf().
C
// C program to illustrate the use of printf with width> // specifier> #include> int> main()> {> > // number to be printed> > int> num = 123456;> > // printing the num with 10 width and getting the> > // printed characters in char_printed> > printf> (> 'Printing num with width 10: '> );> > int> chars_printed => printf> (> '%10d'> , num);> > printf> (> '
Number of characters printed: %d'> ,> > chars_printed);> > // specifying with using other method> > printf> (> '
Printing num with width 3: '> );> > chars_printed => printf> (> '%*d'> , 3, num);> > printf> (> '
Number of characters printed: %d'> ,> > chars_printed);> > return> 0;> }> |
Výstup
Printing num with width 10: 123456 Number of characters printed: 10 Printing num with width 3: 123456 Number of characters printed: 6
Jak vidíme, i když definujeme šířku, která je menší než současné znaky, všechny znaky jsou stále vytištěny. Také jsme viděli dva způsoby, kterými můžeme definovat šířku.
Příklad 3: printf s přesným dílčím specifikátorem
V tomto příkladu předvedeme dílčí specifikátor přesnosti ve funkci printf().
C
// C program to illustrate the use of precision> // sub-specifier> #include> int> main()> {> > int> num = 2451;> > float> dec = 12.45126;> > char> * str => 'techcodeview.com'> ;> > // precision for integral data> > printf> (> 'For integers: %.10d
'> , num);> > // precision for numbers with decimal points> > printf> (> 'For floats: %.2f
'> , dec);> > // for strings> > printf> (> 'For strings: %.5s'> , str);> > return> 0;> }> |
Výstup
For integers: 0000002451 For floats: 12.45 For strings: Geeks
Příklad 4: printf s dílčím specifikátorem délky
C
// C program to illustrate the length modifier> #include> int> main()> {> > long> var = 3000000000;> > // printing var using %d> > printf> (> 'Using %%d: %d'> , var);> > // printing var using %ld> > printf> (> '
Using %%ld: %ld'> , var);> > return> 0;> }> |
Výstup
Using %d: -1294967296 Using %ld: 3000000000