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!
c++ iostream iomanip setfill setw
Commentami!