La funzione printf in C: stampare su console

La funzione printf (abbreviazione di "print formatted") è una delle funzioni di output principali del linguaggio c. Essa viene utilizzata per visualizzare sullo standard output una stringa formattata. La sua sintassi è la seguente:

int printf(const char *format, ...)

Il parametro format è la stringa che contiene il testo da stampare a video e opzionalmente può contenere specificatori di formato, che vengono sostituiti dai valori specificati nei parametri aggiuntivi e questi valori verranno formattati nella maniera definita.

Esempio di utilizzo della funzione printf in C

Per stampare a video una semplice parola o frase basta inserire nel parametro format quello che vogliamo visualizzare.

Ad esempio se vogliamo visualizzare la frase "Hello world!", basta scrivere:

printf("Hello world!");

mentre per stampare a video il valore contenuto in una variabile x dobbiamo utilizzare uno specificatore di formato seguito dalla variabile:

int x = 5; printf("%d", x);

in questo modo verrà stampato semplicemente "5".

Possiamo integrare gli specificatori di formato anche all’interno di una frase, per esempio:

printf("La variabile x contiene il valore: %d", x);

in questo caso verrà stampato “La variabile x contiene il valore: 5”.

Specificatori di formato in C

Come già scritto precedentemente il parametro format può contenere specificatori di formato, che sono definiti dal simbolo di percentuale "%" seguiti da una specifica lettera che ne determina il tipo di dato.

Specificatore di formato

Tipo di dato

%d, %i

int: intero decimale con segno

%f

float o double: reale con segno

%c

char: carattere singolo

%s

string: array di caratteri

%e, %E

float o double: forma esponenziale standard

%g, %G

float o double: notazione reale o esponenziale, scegliendo tra %e (%E) o %f

%o

int: intero in base ottale senza segno

%u

int: intero in base decimale senza segno

%x, %X

int: intero in base esadecimale senza segno

%p

pointer: valore variabile puntatore

%n

non stampa nulla, ma mostra il numero di caratteri scritti in un puntatore intero

%%

permette di scrivere il carattere "%"

Nota: per poter stampare un numero specifico di numeri dopo la virgola di un numero reale, si può utilizzare la seguente sintassi: %.2f il che sta a significare di stampare solamente fino a due numeri dopo la virgola.

Sequenze di escape in C

Le sequenze di escape sono delle sequenze di caratteri che non vengono visualizzati per come sono definiti, ma tradotti in un altro carattere o sequenza di caratteri utilizzati per formattare il testo. Come nel caso dei specificatori di formato anche le sequenze di escape vengono introdotte da un carattere particolare, ovvero il carattere backslash "\" detto carattere di escape. Quest’ultimo viene seguito da almeno un altro carattere che ne definisce la sequenza di escape.z

Sequenza di escape

Descrizione

\a

segnale alert

\b

backspace

\e

escape character

\f

formfeed - nuova pagina

\n

newline - ritorno a capo

\r

carriage return

\t

tabulazione orizzontale

\v

tabulazione verticale

\\

permette di scrivere il carattere /

\'

permette di scrivere il carattere '

\"

permette di scrivere il carattere "

\?

permette di scrivere il carattere ?

Esempio di utilizzo della funzione printf con specificatori di formato

Per concludere consideriamo il seguente codice:

#include <stdio.h> int main(){ int a = 3; float b = 52.75682; printf("Ciao :)\n"); printf("a=%d \t b=%f \n\n", a, b); printf("approssimiamo il numero b a due cifre dopo la virgola: %.2f \n", b); printf("stampo un carattere -> %c", 'z'); return 0; }