Kun tulostan tietoja konsoliruudulle, haluan niiden näkyvän siististi taulukkomuodossa:
ekasolu\t tokasolu\t kolmassolu\n
neljässolu\t viidessolu\t kuudessolu\t
Mutta: jos jonkun solun sisältöteksti on muita pidempi taulukon rivit eivät enää pysy suorassa. Onko mitään vaikka \t tabulaattorin vastinetta, joka määräisi välin pisimmän solun mukaan?
ekasolu\t tokasolu\t kolmassolu\n
neljässolu\t viidessolu\t kuudessolu\t
Mutta: jos jonkun solun sisältöteksti on muita pidempi taulukon rivit eivät enää pysy suorassa. Onko mitään vaikka \t tabulaattorin vastinetta, joka määräisi välin pisimmän solun mukaan?
Vastaukset 2
Vanhimmat
http://en.wikipedia.org/wiki/Ncurses
Konsteja löytyy. Edellisen vastaajan ncruses-ehdotus on overkill. Kärpästä ei kannata tappaa singolla.
Kyllä printf:llä onnistuu, kun hieman järkeilee.
(1) Voit käyttää printf:ssä riittävän leveitä kenttiä.
(2) Voit laskea ensin kunkin sarakkeen pisimmän merkkijonon, muodostaa tuon tiedon avulla format-stringin, jossa on sopivan levyiset kentät, ja sitten käyttää kyseistä format-stringiä printf:ssä.
char fmt[256];
sprintf(fmt, "%%%ds%%%ds%%%ds\n", kentan1_leveys, kentan2_leveys, kentan3_leveys);
printf(fmt, "eka", "toka", "kolmas");