La funzione printf()

 

 

La funzione fa parte della Libreria Standard del C e consente all’utente di inviare sul monitor del pc dei numeri / caratteri.

 

Il parametro principale della funzione è la stringa di formato, ovvero una stringa di testo che specifica :

(1)   che caratteri stampare

(2)   in che formati stamparli

(3)   i valori di quali variabili vanno stampati

 

 

Nel caso in cui tale stringa sia composta da solo testo, ovvero solo da caratteri normali, la funzione stampa tutti i caratteri formanti la stringa di formato stessa.

 

Ad esempio,

 

printf(“Prova di scrittura \n”);

 

Produrrà come output

 

Prova di scrittura

 

Il carattere \n (nonostante ci siano due simboli, esso va considerato come un singolo carattere) indica che bisogna inserire un ‘a capo’. Altri caratteri speciali sono:

 

\n

A capo

\t

Tabulazione

\’

Apostrofo

\”

Doppi apici

\\

\

 

 

Tutti questi simboli vanno trattati come se rappresentassero un singolo carattere.

 

Ad esempio,

 

printf(“prima riga \n seconda riga \t tabulazione”);

 

produrrà come output

 

prima riga

seconda riga       tabulazione

 

All’interno della stringa di formato è anche possibile inserire degli altri caratteri speciali che permettono di stampare i valori delle variabili contenute nel programma. Tali caratteri speciali si indicano con il termine di specificatori di formato ed indicano alla funzione qual è il tipo della variabile che deve essere visualizzata.

 

Ad esempio

 

int num = 4;

printf(“Il valore della variabile num e\’: %d \n”,num);

 

produce come output

 

Il valore della variabile num e’: 4

 

 

Alcuni degli specificatori di formato sono:

 

%d

interi

%f

float / double

%e

decimali,in notazione esponenziale

%c

caratteri

 

 

Con la funzione printf() possiamo stampare una variabile per volta o stamparne molte contemporaneamente

 

int var1=4, var2 = 43, var3 = 234;

double dec1 = 3.1415, dec2 = 2.78;

 

printf(“stampo molte variabili; alcune intere %d %d %d\n”,var1,var2,var3);

printf(“ancora variabili, questa volta decimali %f %f”,dec1,dec2);

 

Le due istruzioni producono come output

 

stampo molte variabili; alcune intere 4 43 234

ancora variabili, questa volta decimali 3.141500 2.780000

 

Nota: gli spazi tra le variabili ci sono solo perché essi compaiono nella stringa di formato. L’istruzione

 

printf(“%f%f”,dec1,dec2);

 

produce

 

3.1415002.780000

 

Per evitare un sacco di 0 nella stampa di variabili di tipo float o double, possiamo usare ancora gli specificatori di formato indicando quante cifre in totale vogliamo stampare e quante vogliamo che compaiano dopo la virgola

 

%4.3f   indica che in totale voglio stampare 4 cifre, compreso il punto decimale, e che di queste 4 ne voglio 3 dopo la virgola

 

double temp=34.1232;

printf(“%f   %5.2f   %8.4f”,temp,temp,temp);

 

produce

 

34.123200   34.12    34.1232

 

NOTA: in questo modo posso produrre delle tabelle ordinate

 

double d1=34.1233213,d2=1232.3,d3=0.1212;

printf(“%f %f %f”,d1,d2,d3);   

 

produce

 

34.12332131232.30.1212

 

mentre

 

double d1=34.1233213,d2=1232.3,d3=0.1212;

printf(“%9.2f %9.2f %9.2f”,d1,d2,d3);   

 

produce

 

****34.12 **1232.30 *****0.12

 

Il carattere ‘*’ indica la presenza di uno spazio lasciato dal programma a causa del formato specificato; ‘ ‘ indica lo spazio lasciato a causa dello spazio presente nella stringa di formato.

 

A questo punto possiamo scrivere anche delle cose più elaborate

 

int num1=42,num2=9834;

double h = 23423.123;

 

printf(“$$$$\nValori interi: %d\t%d \n\t ed ora un valore decimale: %f\n$$$$\n”);

 

che produce

 

$$$$

Valori interi: 42        9834

        ed ora un valore decimale 23423.123000

$$$$