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, odnosno dan. mjesec. godina. ako je mjesec napisan brojkom

Oblik naredbe i definicija formata

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

slovotip predstavljen slovomprimjer
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)
ooktalni cijeli broj bez predznaka
xheksadekadski cijeli broj bez predznaka
e,f,gbroj 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
cispis jednog znaka (char)%c
sispis niza znakova (string)%s

Napomena - ovo je nepotpuna tablica, navedeni su samo najčešći tipovi.

C

 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

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 izlazSystem.out.printf("%s, %s", "Hrvatska", "wikipedija");

Python

print("Umnožak pet i šest je {0}.".format(5*6))
Umnožak pet i šest je 30.

Unix

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)

  • 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

Vanjske poveznice

Nedovršeni članak Printf koji govori o računarstvu treba dopuniti. Dopunite ga prema pravilima Wikipedije.