C# - tisk na konzoli?
Jeste mam otazku ohledne tisku na konzoli do sloupcu asi pomoci Console.Write()... Ale mam problem, potrebuju to vytisknout do trech sloupcu... Tzn.
Console.WriteLine("neco"); Console.WriteLine("neco");
Console.WriteLine("neco "); Console.WriteLine("neco");
Console.WriteLine("neco "); Console.WriteLine("neco");
Tento kod se mi vypise pod sebe. Ale ja potrebuju aby se mi vytiskl takto ve sloupcich stim ze, nejdrive vitisknu v cyklu prvni sloupec a pak druhy... Nevite?
Konzola takéto veci, ako je postupné vypisovanie do stĺpcov, už z princípu neumožňuje (presnejšie povedané: dá sa to, ale nestojí to za tú námahu).
Takže ak chceš vypisovať niečo do dvoch stĺpcov, musíš si to najprv pripraviť v pamäti (v reťazci). Pre "neco1", "neco2", "neco3" a "neco4" by si si vytvoril napr. dva reťazce "neco1\tneco3" a "neco2\tneco4", ktoré by si potom vypísal pod sebou na konzolu.
Ja by som sa takémuto formátovaniu výstupu vyhol a písal to jednoducho pod seba. Konzola nie je o tom, aby to pekne vyzeralo.
sme sa zhodli
V konzoli (vseobecne) musis pisat po riadkoch, je lepsie program urobit tak aby vypisoval po riadkoch (vysledky ulozit do pola alebo premennych a vypisat na konci ak mas vsetky potrebne informacie).
Mozes pouzit Console.Write ak nechces hned na dalsi riadok, pre dalsi stlpec snad pojde pouzit tabelator (znak \t), ale to si nie som u win konzoly isty.
jj uz to tisknu po radcich, ale jeste me zajima, jak tisknout pevne od leveho kraje...
Skousel jsem to pomoci:
Console.Write("{0,10:D}", neco); // ta 10 znamena pocet bodu od leveho kraje
Ale kdyz mam ruzne dlouha slova hned u kraje (seznam slov) a naprovo od nich ciselne polozky, a chci aby to vypadalo pekne zformatovane do sloupcu, tak to mam pomoci teto metody stejne rozhazene... Nevim, jestli mi rozumite...
Ak poznáš nejakú maximálnu dĺžku slova (alebo takú dĺžku slova, po prekročení ktorej Ti už nevadí, že sa formátovanie rozsype), tak môžeš použiť rovnaký spôsob formátovania ako na čísla, čiže niečo takéto:
Diky moc chlapce!!! Jen tam stacilo dat \t... fakt jsi mi moc pomohl... Diky i uzivateli mm...
Precitaj si poriadne aj co pisem nizsie, tabelator (\t) ti pomoze len do rozdielu dlzky slov 8 znakov, pri vacsich rozdieloch dlzky slov to budes mat zas zle, je dobre pouzit ten format {...} pre vypis textu (slova), nielen pre vypis ciselnej polozky. Tabelator (\t) potom nepotrebujes.
P.S. ak chces aby bolo slovo zarovnane zlava, pouzi v tom formate zaporne cislo, t.j. napr. -10 namiesto 10, ak chces zarovnat slovo na 10znakov tak aby slovo bolo na lavej strane tych 10 znakov.
jj pouzil jsem -10... uz to vsechno chapu. diky
Ta 10 neznamena pocet bodov od laveho okraja (konzola nema body ale znaky, a nie je to ani nic od laveho okraja). http://msdn2.microsoft.com/en-us/library/txafckwd(V S.80).aspx
to cislo znamena "preferred formatted field width" to znamena sirku aku chces aby malo to "neco" po vypisani, takze to pouzi na vypis tych slov a daj si tam nieco vacsie (ako maximalne dlhe slovo, napr. 20 ak max. slovo ma 20 znakov).
P.S. odporucam este za to potom dat aspon jednu medzeru alebo dvojbodku apod., ak by niektore slovo malo tych 20znakov alebo viac, aby bola aspon jedna medzera alebo nieco medzi slovom a tym dalsim co za tym v riadku nasleduje.