Linguaggio C++

Libreria Iomanip

Introduzione alla libreria iomanip del C++: formattazione dell output, setprecision, setw, setfill, fixed e scientific.

La libreria <iomanip> permette di controllare in modo preciso la formattazione dell output nei programmi C++. È molto utile per stampare numeri con un determinato numero di decimali, allineare testo, riempire spazi e formattare tabelle.


1️⃣ Inclusione della libreria

Per usare le funzioni di formattazione basta includere:


#include <iomanip>

Le funzioni principali della libreria sono setprecision, setw, setfill, fixed e scientific.


2️⃣ Funzioni principali

Funzione Descrizione Esempio
setprecision(n) Numero di cifre significative (o decimali con fixed) setprecision(3)
fixed Mostra i decimali fissi cout << fixed;
scientific Notazione scientifica cout << scientific;
setw(n) Larghezza del campo di stampa setw(10)
setfill(c) Carattere per riempire gli spazi setfill('-')
left, right Allineamento del testo cout << right;

3️⃣ Esempi pratici

✔ setprecision e fixed

double x = 3.1415926535;

cout << setprecision(3) << x << endl;    // 3.14 con fixed
cout << fixed << setprecision(5) << x;   // 3.14159
✔ setw e setfill

cout << setw(10) << 42 << endl;
cout << setfill('*') << setw(10) << 42;
✔ Allineamento

cout << left  << setw(10) << "Nome";
cout << right << setw(10) << "Età";

4️⃣ Tabella formattata


cout << left << setw(15) << "Prodotto"
     << right << setw(10) << "Prezzo" << endl;

cout << left << setw(15) << "Mela"
     << right << setw(10) << 1.20 << endl;

cout << left << setw(15) << "Pera"
     << right << setw(10) << 1.50 << endl;
LABORATORIO

Formattazione dell output con iomanip

In questo laboratorio imparerai a formattare correttamente l output usando setw, setfill, fixed e setprecision. Realizzerai una semplice tabella allineata.


1 Numero di decimali

Chiedi all utente un numero reale e stampalo con 2, 4 e 6 decimali.


double x;
cout << "Numero: ";
cin >> x;

cout << fixed;
cout << setprecision(2) << x << endl;
cout << setprecision(4) << x << endl;
cout << setprecision(6) << x << endl;

2 Tabella allineata

Crea una tabella con tre colonne: nome, quantita e prezzo.


cout << left  << setw(15) << "Prodotto"
     << right << setw(10) << "Q.ta"
     << right << setw(10) << "Prezzo" << endl;

3 Separatore personalizzato

Usa setfill per creare una riga di separazione:


cout << setfill('-') << setw(40) << "" << endl;

4 Esercizi

  • Stampa una tabella di 10 numeri e dei loro quadrati, allineata.
  • Formatta un listino prezzi con 2 decimali.
  • Stampa una ricevuta con separatori e colonne allineate.
  • Stampa un numero in notazione scientifica.