Přeskočit na obsah

Printf (Unix)

Z Wikipedie, otevřené encyklopedie

printf je příkaz používaný v příkazové řádce pro formátování výstupu. Předlohou pro tento příkaz byla stejnojmenná funkce implementovaná v základní knihovně stdio.h[1] pro jazyky C a C++.

Implementace pro GNU coreutils byla napsána Davidem MacKenziem .

Syntaxe příkazu printf je velmi podobná syntaxi předlohové funkce z knihovny stdio.h:

$ printf "%.2f\n" "11.4243" "21.5534"
11.42
21.55

Oproti předlohové funkci implementované v stdio.h však unixové implementace nabízí další specifikátory: %q a %b [2].

Specifikátor %b byl vytvořen jako nadstavba specifikátoru pro stringy (%s) a je schopný správně interpretovat escapování znaků:

$ printf "%s" "Ahoj\t" "svete"
Ahoj\tsvete

$ printf "%b" "Ahoj\t" "svete"
Ahoj	svete

Specifikátor %q je pak užitečný v případě, je-li potřeba použít výstup příkazu printf jako vstup pro jiný příkaz.

Seznam některých specifikátorů

[editovat | editovat zdroj]

Kompletní seznam specifikátorů je dostupný v manuálu příkazu printf (man printf)

SpecifikátorVýznamPoužitíVýstup
%fDesetinná čísla s různou přesnostíprintf %.3f 3.141593.142
%d nebo %iCelá číslaprintf %d 3.141593
%eVědecká notace desetinných číselprintf %e 3.141593.141590e+00
%gVědecká nebo normální reprezentace desetinných čísel, vybrána kratší reprezentaceprintf %g 3.141593.14159
%sTextprintf %s "Lorem \\ ipsum"Lorem \\ ipsum
%bText s escapováním znakůprintf %b "Lorem \\ ipsum"Lorem \ ipsum
%%Vrací %printf %% "Lorem \\ ipsum"%
%qFormátuje výstup pro zpracování dalšími příkazyprintf %q "Lorem \\ ipsum"Lorem \ ipsum

V tomto článku byl použit překlad textu z článku printf(Unix) na anglické Wikipedii.

  1. fprintf (C) manual [online]. Dostupné online.
  2. printf (Unix) manual [online]. Dostupné online.