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

[uredi | uredi kôd]

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 | uredi kôd]
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.

 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 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 | uredi kôd]
print("Umnožak pet i šest je {0}.".format(5*6))
Umnožak pet i šest je 30.

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 | uredi kôd]

Izvori

[uredi | uredi kôd]
  1. Ken O. Burtch, Linux Shell Scripting with Bash, ISBN 0-672-32642-6, str. 356

Vanjske poveznice

[uredi | uredi kôd]
Nedovršeni članak Printf koji govori o računarstvu treba dopuniti. Dopunite ga prema pravilima Wikipedije.