Teorie: Afișarea informației (iomanip)
Formatarea afișării în C++ folosind biblioteca iomanip: setw, setprecision, scientific, fixed.
Afișarea informației alfanumerice (iomanip)
În C++, fluxul de ieșire cout poate fi controlat și formatat pentru a afișa datele într-un mod specific (număr fix de zecimale, aliniere la dreapta, notație științifică etc.). Pentru a realiza acest lucru, folosim manipulatori de flux disponibili în biblioteca <iomanip>.
#include <iomanip>1. Principalii Manipulatori
setw(n)
Setează lățimea câmpului de afișare pentru următoarea valoare (și doar pentru ea) la n caractere. Valoarea este aliniată implicit la dreapta.
int x = 42;
cout << setw(5) << x << "|";
// Afișează: 42| (3 spații goale urmate de 42)setprecision(n)
Setează numărul de cifre semnificative (sau zecimale, când e folosit cu fixed) ce vor fi afișate pentru numerele reale. Spre deosebire de setw, setarea rămâne valabilă pentru toate afișările viitoare.
float pi = 3.14159;
cout << setprecision(3) << pi;
// Afișează 3.14 (3 cifre în total)fixed
Schimbă comportamentul lui setprecision astfel încât să se refere la numărul exact de zecimale de după virgulă, forțând totodată afișarea lor (inclusiv a zerourilor).
float f = 2.5;
cout << fixed << setprecision(2) << f;
// Afișează: 2.50scientific
Afișează numerele reale în notație științifică (ex: 1.23e+02 care înseamnă 1.23 × 10²).
double x = 1234.56;
cout << scientific << x;
// Afișează: 1.234560e+032. Exemplu Complet
Afișarea unui tabel aliniat este cel mai bun exemplu pentru utilizarea lor împreună.
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
// Setăm formatul fix cu 2 zecimale pentru toate numerele viitoare
cout << fixed << setprecision(2);
cout << setw(10) << "Produs" << setw(10) << "Pret" << endl;
cout << setw(10) << "Mar" << setw(10) << 2.5 << endl;
cout << setw(10) << "Paine" << setw(10) << 10.0 << endl;
return 0;
}Capcană la Bacalaureat
Țineți minte că setw(n) își pierde efectul imediat după prima variabilă afișată, așadar trebuie rescris înaintea fiecărui element pe care dorim să-l lățim. În schimb, setprecision(n) și fixed rămân active pentru tot restul programului odată aplicate!