PDA

View Full Version : [c++] Stampare correttamente una matrice in un file


spidey
29-01-2009, 13:36
Salve a tutti.
Ho bisogno di stampare un array bidimensionale in un file.
Il problema è che quando stampo, distanza tra i numeri in ogni colonna non è sempre la stessa, quindi i numeri non sono ben allineati.

Vi faccio un esempio:


for(int i=0; i < righe;i++){
for(int j=0; j < colonne; j++)
file<<Matrice[i][j]<<setw(14);

file<<setw(-14)<<endl;
}


L'output è il seguente:



0 0
0 0
0 0
16 0
0 0
0 0
0 16
15 0
0 15
16 16
0 0
0 0
15 16



come posso risolvere?

anyanka
29-01-2009, 14:13
hai provato a distanziare gli elementi con un carattere di tabulazione \t ??

marco.r
29-01-2009, 14:22
La setw devi usarla prima del valore da stampare e non dopo. Inoltre usata cosi' vale solo per il valore successivo non per tutti, per cui la setw(-14) non ha molto senso
Dovrebbe andare meglio qualcosa tipo

for(int i=0; i < righe;i++)
{
for(int j=0; j < colonne; j++)
{
file<<setw(14) << Matrice[i][j];
}
file<<endl;
}

spidey
29-01-2009, 15:07
La setw devi usarla prima del valore da stampare e non dopo. Inoltre usata cosi' vale solo per il valore successivo non per tutti, per cui la setw(-14) non ha molto senso
Dovrebbe andare meglio qualcosa tipo

for(int i=0; i < righe;i++)
{
for(int j=0; j < colonne; j++)
{
file<<setw(14) << Matrice[i][j];
}
file<<endl;
}



Ti ringrazio! Così va molto meglio, in effetti ero stato un pò superficiale sull'utilizzo di setw,è che volevo iniziare a visualizzare la matrice dall'inizio del file a sinistra.

Per quanto riguarda /t non ne ho mai sentito parlare, in cosa consiste?

cionci
29-01-2009, 16:48
Per quanto riguarda /t non ne ho mai sentito parlare, in cosa consiste?
E' il carattere di tabulazione, ma meglio usare setw ;)

spidey
29-01-2009, 22:10
Grazie mille a tutti! ;)