PDA

View Full Version : [C++] Formato output: allineare virgola


Mitur
12-03-2008, 18:32
ciao, mi sto chiedendo questo:
Nel mio file di output ho una serie di numeri con virgola. Ho utilizzato setprecision con fixed e showpoint per fissare il numero delle cifre dopo la virgola e scrivere gli zeri anche finali, pero' nel caso in cui prima della virgola ho un segno - o un numero diverso di cifre si perde l'allineamento della colonna dei dati.
Ho usato outputfile << variabile1 << variabile2 ecc.

C'e' una formula per allineare il decimal point o devo usare per forza fprintf? :muro:

Mitur
13-03-2008, 08:38
nessuno sa darmi una mano? :(

cionci
13-03-2008, 09:37
C'e' una formula per allineare il decimal point o devo usare per forza fprintf? :muro:
Il - non è contato nel computo delle posizioni.
Metti il + davanti ai numeri positivi:

string s;
if(n > 0)
{
ostringstream oss;
oss << "+" << fixed << setprecision(5) << showpoint;
oss << n;
cout << oss.str();
}
else
{
stampi il numero normalmente.
}

Mitur
13-03-2008, 10:32
Questo l'avevo gia' provato, ma mi resta il problema di quando prima della virgola c'e' un numero diverso di cifre, es.

+100.qualcosa
-99.qualcosa

:rolleyes:

cionci
13-03-2008, 10:37
Ma questo lo risolvi con:

cout << setw(10) << right

Mitur
13-03-2008, 12:31
Risolto! cosi' facendo, una volta fissate le cifre dopo la virgola, non c'e' neanche bisogno di mostrare il segno +! grazie mille ;)