Předmět Autor Datum
Console-Color.aspx Vygooglováno, neručím.
shark.jd 17.04.2009 23:25
shark.jd
To je přesně ono, díky moc.
Dave 18.04.2009 08:56
Dave
vseobecne nie, konzola nie je omalovanka, konzola moze byt vseobecne aj pisaci stroj co klepe pismen…
mm 18.04.2009 02:02
mm
.. pozeram v odpovedi vyssie ze na to dokonca MS urobil metody C# takze ani nemusis liezt na WinAPI,…
mm 18.04.2009 02:06
mm
vseobecne nie, konzola nie je omalovanka,... je to ale neslusne nieco take robit (taku aplikaciu by…
programator 18.04.2009 04:45
programator
Ať nezakládám nové vlákno: Když předpokládám jako uživatelem zadaný vstup celé číslo a používám ted…
Dave 18.04.2009 09:18
Dave
no aby nespadl tak neošetříš vyjímku přeci Console.WriteLine("Zadej číslo"); int i; try{ i = Conso…
programator 18.04.2009 09:29
programator
Console.Write("Zadej číslo: "); int c1 = int.Parse(Console.ReadLine()); try { c1 = Console.Read(); }…
Dave 18.04.2009 09:50
Dave
Spadne to na riadku c1 = int.Parse(Console.ReadLine()), pretože nie je v bloku try..catch. Následné… poslední
los 18.04.2009 11:36
los

vseobecne nie, konzola nie je omalovanka, konzola moze byt vseobecne aj pisaci stroj co klepe pismena na papier :-)
Vo Win to mozno ide pouzitim WinAPI funkcii nechce sa mi to hladat, je to ale neslusne nieco take robit (taku aplikaciu by som rychlo z PC vykopal)

.. pozeram v odpovedi vyssie ze na to dokonca MS urobil metody C# takze ani nemusis liezt na WinAPI, to by nebol MS aby niekde neurobil omalovanky. Keby MS robil pisaci stroj tak by bol farebny zaobleny maloval by vsade logo s oknami ale pisal by max. 1 pismeno za sekundu :-D

Console.Write("Zadej číslo: ");
int c1 = int.Parse(Console.ReadLine());
try
{
c1 = Console.Read();
}
catch
{

}

Tak při tomhle to taky spadne :.( Pokud se to podaří vyřešit, ještě bych rád, aby to při zadání písmene vrátilo uživatele zpět na řádek k zadání čísla (mám to jako nový private static void, takže na to stačí odkázat, ale nevím, kam to napsat.

//edit: tak nakonec jsem to vyřešil switch-em. Toto řešení mi v mém případě vyhovuje daleko víc.

Spadne to na riadku c1 = int.Parse(Console.ReadLine()), pretože nie je v bloku try..catch. Následné volanie c1 = Console.Read() nedáva zmysel, pretože vstup si už prečítal a týmto si ho prepíšeš hodnotou ďalšieho zadaného znaku.

Lepšie než ošetrovať výnimku je otestovať vstup, t.j. použiť metódu TryParse namiesto metódy Parse.

Dalo by sa to napísať nejako takto (netestované):

int number;
string line;

do
{
  Console.Write("Zadaj číslo: ");
  line = Console.ReadLine();
}
while (!int.TryParse(line, out number));

Zpět do poradny Odpovědět na původní otázku Nahoru