02.06.2013 Views

CORSO C++ STANDARD - Didattica.it

CORSO C++ STANDARD - Didattica.it

CORSO C++ STANDARD - Didattica.it

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

La funzione printf con più argomenti<br />

Eventuali altri argomenti successivi alla control string, nella chiamata a printf,<br />

rappresentano i dati da formattare e scrivere, e possono essere cost<strong>it</strong>u<strong>it</strong>i da<br />

costanti, variabili, espressioni, o altre funzioni (in questo caso in realtà<br />

l'argomento è il valore di r<strong>it</strong>orno della funzione, la quale viene esegu<strong>it</strong>a prima<br />

della printf). Per il momento, dato che le variabili non sono state ancora<br />

introdotte, supponiamo che i dati siano cost<strong>it</strong>u<strong>it</strong>i da costanti o da espressioni<br />

fra costanti<br />

Specificatori di formato<br />

Ad ogni argomento successivo alla control string, deve corrispondere, all'interno<br />

della stessa control string e nello stesso ordine, uno specificatore di formato,<br />

cost<strong>it</strong>u<strong>it</strong>o da un gruppo di caratteri introdotto dal carattere "%". Nella sua forma<br />

generale uno specificatore di formato ha la seguente sintassi:<br />

%[flags][width][.precision]type<br />

dove i termini indicati con il colore fuchsia cost<strong>it</strong>uiscono i campi dello<br />

specificatore (senza spazi in mezzo), e sono tutti opzionali salvo l'ultimo (type),<br />

che determina come deve essere interpretato il corrispondente argomento della<br />

printf (numero intero, numero floating, carattere, stringa ecc...). I campi<br />

opzionali controllano invece il formato di scr<strong>it</strong>tura. Se sono omessi, cioè lo<br />

specificatore assume la forma minima %type, i dati sono scr<strong>it</strong>ti in free-format<br />

(cioè in modo da occupare lo spazio strettamente necessario). Per esempio, se a<br />

un certo punto della control string compare lo specificatore %d, significa che in<br />

quella posizione deve essere scr<strong>it</strong>to, in free-format, il valore del corrispondente<br />

argomento della printf, espresso come numero intero decimale, come nel<br />

caso della seguente istruzione:<br />

printf("Ci sono %d iscr<strong>it</strong>ti a questo corso!\nTemevo fossero solo<br />

%d!",3215+1,2);<br />

che scrive su video la frase:<br />

Ci sono 3216 iscr<strong>it</strong>ti a questo corso!<br />

Temevo fossero solo 2!

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!