Formattare il testo in console in C++

Mattepuffo's logo
Formattare il testo in console in C++

Formattare il testo in console in C++

Può capitare di avere dei programmi console che producono parecchio testo.

E magari vogliamo formattarlo in modo da renderlo più leggibile.

Oggi vediamo come fare in C++.

Partiamo da un esempio basico:

#include <iostream>

using namespace std;

int main()
{
    cout.setf(ios::right, ios::adjustfield);
    cout.width(20);
    cout << "Testo a destra" << endl;
    cout << "Testo di nuovo a sinistra" << endl;

    return 0;
}

Come potete vedere dall'output, la formattazione vale solo per il primo output.

Ma possiamo usare la libreria iomanip e risolvere così:

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
    cout << right << setfill('.') << setw(20) << "XXX" << endl;
    cout << right << setfill('.') << setw(20) << "YYYYYYYY" << endl;

    return 0;
}

Con setfill abbiamo impostato di visualizzare il puntino in tutti gli spazi vuoti fino al testo; abbiamo impostat un massimo di 20 puntini.

Come potete vedere, le due righe di output sono allineate; ci pensa setfill a riempire gli spazi in automatico in maniera corretta.

Nell'ultimo esempio che vediamo, abbiamo prima un testo a sinistra, i valori a destra e i puntini in mezzo:

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
    cout << left << setfill('.') << setw(20) << "CHIAVE 1" << right << setfill('.') << setw(20) << "XXX" << endl;
    cout << left << setfill('.') << setw(20) << "CHIAVE 2" << right << setfill('.') << setw(20) << "YYYYYYY" << endl;

    return 0;
}

Anche qui il lavoro "sporco" lo fa setfill in automatico.

Enjoy!


Condividi

Commentami!