printf
printf ime je naredbe za ispis obično dostupne na svim *nix operacijskim sustavima kao naredbe sustava, te naredbe za ispis u mnogim programskim jezicima. Uzrok raširenosti ove naredbe leži u širokim mogućnostima oblikovanja ispisa prema željama programera odnosno najčešće sukladno nekim tipičnim zahtjevima, npr:
- brojevi, kad je riječ o novcu, bankovnim ili drugim računima odnosno transankcijama obično se potpisuju jedan ispod drugoga tako da su jedinice ispod jedinica, desetice ispod desetica, stotice ispod stotica itd.; brojke su obično pozicionirane uz desnu marginu
- nadnevci također imaju uobičajene načine ispisa, od kojih je u hrvatskom jeziku najčešći oblik
dan. mjesec godina.
ako je mjesec napisan slovima, odnosnodan. mjesec. godina.
ako je mjesec napisan brojkom
Oblik naredbe i definicija formata uredi
printf naredba ima sljedeći oblik: printf "format" parametri
. Format se definira na sljedeći način:
%[parametar][zastavice][širina ispisa][.preciznost][duljina]tip
Parametri u uglatim zagradama su opcionalni, samo su dva parametra obvezna, znak % i tip podatka koji se ispisuje.
Tipovi uredi
slovo | tip predstavljen slovom | primjer |
---|---|---|
d | (dekadski) cijeli broj s predznakom | %d - ispiši kao dekadski cijeli broj
%6d- ispiši kao dekadski cijeli broj širine najviše 6 znamenaka |
u | (dekadski) cijeli broj bez predznaka (unsigned) | |
o | oktalni cijeli broj bez predznaka | |
x | heksadekadski cijeli broj bez predznaka | |
e,f,g | broj s pomičnim zarezom, s ili bez eksponenta | %6.2f - ispis realnog broja najveće širine 6 znamenaka, s dvije znamenke iza decimalne točke |
c | ispis jednog znaka (char) | %c |
s | ispis niza znakova (string) | %s |
Napomena - ovo je nepotpuna tablica, navedeni su samo najčešći tipovi.
C uredi
printf("Boja je %s, cijeli broj 1: %d, cijeli broj 2: %05d, heksadekadski broj %#x, racionalni broj %5.2f, cijeli dekadski broj bez predznaka %u.\n",
"plava", 123456, 89, 255, 3.14159, 250);
Gornja C naredba će ispisati (uključujući znak za novi redak - \n):
Boja je plava, cijeli broj 1: 123456, cijeli broj 2: 00089, heksadekadski broj 0xff, racionalni broj 3.14, cijeli dekadski broj bez predznaka 250.
Java uredi
Java od inačice 1.5 ima naredbu printf kao dio java.io.PrintStream klase (tj. printf je dio standardnog Java API-ja od inačice 1.5).
// Ispis "Hrvatska wikipedija" na standardni izlaz
System.out.printf("%s, %s", "Hrvatska", "wikipedija");
Python uredi
print("Umnožak pet i šest je {0}.".format(5*6))
Umnožak pet i šest je 30.
Unix uredi
printf naredba je ugrađena u bash ljusku.[1]
$ JEZIK=Hrvatska
$ PROJEKT=wikipedija
$ printf "%s %s\n" "$JEZIK" "$PROJEKT"
Hrvatska wikipedija
Popis programskih jezika koji imaju printf naredbu (ili njen ekvivalent) uredi
- AMPL
- awk (preko sprintf-a)
- Unix ljuske: Korn shell (ksh), Bourne again shell (bash), Z shell (zsh)
- C
- C++ (osim printf-a posjeduje i mogućnost lakog ispisa uporabom shift operatora na iostream)
- Objective-C
- Clojure
- Common Lisp
- D
- Elixir
- F#
- GNU MathProg
- GNU Octave
- G (LabVIEW)
- Go
- Haskell
- J
- Java (od inačice 1.5)
- Lua (string.format)
- Maple
- MATLAB
- Mythryl
- OCaml
- Pascal
- PARI/GP
- PHP
- Perl
- Python (Python 2 preko % operatora, Python 3 uporabom print funkcije s format "parametrizatorom")
- R
- Red/System
- Ruby
- Rust
- Tcl (uporabom format naredbe)
- Transact-SQL (uporabom xp_sprintf-a)
- Vala (uporabom print() i FileStream.printf()-a)
Izvori uredi
- ↑ Ken O. Burtch, Linux Shell Scripting with Bash, ISBN 0-672-32642-6, str. 356
Vanjske poveznice uredi
- http://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html - C printf specifikacija
- http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html#syntax - java.util.Formatter klasa koja interpretira printf pozive
- http://php.net/manual/en/function.printf.php - PHP printf specifikacija