PDA

Visualizza la versione completa : [C] Stampare tabella in modo ordinato e incolonnato


franzSPECIAL
16-02-2011, 09:57
Buongiorno!
Non riesco ad incolonnare i dati in una tabella in maniera ordinata.



...
int mesi[7],durata;
char *n_mesi[7]={" ","Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno"};

printf("%s%17s%17s\n\n","Mese","Durata","Numero");

durata=calcola_durate(curr_month,m);

for(i=0;i<7;i++)
printf("%s%17d%17d\n",n_mesi[i],durata,m);

Dove chiaramente "durata" ed "m" variano per ogni mese.

Il problema è che a seconda della lunghezza del nome del mese i dati numerici vengono traslati verso destra di una certa quantità.

lolide
16-02-2011, 11:34
Per farlo devi sapere esattamente la lunghezza max dei campi e calcolarla, oppure fissarla tu (se sono stringhe, invece di usare un puntatore allocato con malloc, potresti dargli lunghezza fissa e far in modo che se una stringa è inferiore, gli aggiungi degli spazi).

Altrimenti non c'è un modo preciso.

lolide
16-02-2011, 11:36
EDIT: cross-posting per problemi di connessione.

Scusate :)

franzSPECIAL
17-02-2011, 11:51
Credevo ci fosse un metodo più facile..pazienza!!
Grazie mille!

Loading