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ší.
řetězec java list
- 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>