Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno C - výběr ze dvou možností

Zdravíčko.. Na začátek chci upozornit, že s C jsem začal od píky před pár dny :-)

Mám program, který něco počítá a na konci, jak vyplivne výsledek, je na výběr pokračovat (1) nebo ukončit program (0). Po stisku 1 se celý program opakuje. Je to cyklus while. Na konci cyklu mám tedy:

printf("\nPro pokracovani napis 1, pro ukonceni 0\n");

scanf("%lf",&o);

if ( o == 1)
   continue;

if ( o == 0)
   break;

A potřebuji nějak ošetřit, pokud se stiskne jiné číslo nebo místo čísla znak, aby to napsalo varovnou hlášku a opět by nabídlo výběr stiskni 1 nebo 0. Prosím o lehké nakopnutí, jak na to. Děkuji.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Je mnoho možností. Pokud o je unsigned, tak lze použít např.: do { printf("\nPro pokracovani napis…
oval 28.09.2011 00:34
oval
Díky. Udělal jsem to teda následovně a funguje. do { printf("\nPro pokracovani napis 1, pro ukoncen… nový
Niko Bellic 28.09.2011 11:05
Niko Bellic
Samotne scanf ma aj navratovu hodnotu. Viz google (tusim ze vracia pocet prevedenych veci, t.j. u te…
MM.. 28.09.2011 09:00
MM..
zkoušel jsem p=scanf("%lf",&o) == EOF; a podle hodnoty p pak buď spustit podmínku pro "o", nebo na… poslední
Niko Bellic 28.09.2011 11:10
Niko Bellic

Samotne scanf ma aj navratovu hodnotu. Viz google (tusim ze vracia pocet prevedenych veci, t.j. u teba to bude 1 ak zadal user cislo, alebo 0 ak zadal hovadinu co sa neda previest na cislo). Tak tu navratovu hodnotu testuj, aby si vedel reagovat na ne-cislo. Samozrejme ze musis aj testovatostatne cisla (ak je premenna o unsigned, tak ti okrem navr.hodnoty scanf staci testovat if o>1)

Inac stlacenie nejakej klavesy sa lepsie robi pomocou getch() ptz tam reagujes okamzite na zmacknutie jednej klavesy, a necaka to na potvrdenie nejakeho celoriadkoveho maglajzu od usera.

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