Mirki, pytanko. Otóż chcę zrobić program który ma być idi..odporny (operacje na liście jednokierunkowej) oparty na switch+case. I mam taki problem, że jak NAJPIERW wypiszę na ekranie np. literę(y) (lub inne znaki niebędące liczbą), to program się buguje.
O dziwo, jeśli zacznę bugowanie programu od złej (za dużej/małej) liczby całkowitej, a potem wstawiam litery to jest OK i program nie przechodzi dalej tylko pętla robi się dopóki nie podam prawidłowej liczby.
Poza tym program za każdym razem zalicza mi liczby wymierne ("po przecinku")jako całkowite, mimo że zmienna "ktore" jest typu int, aby pasowała do switch'a.
Jak się zabezpieczyć (( ͡°͜ʖ͡°)) przeciwko tym 2 rzeczom (tylko bez skomplikowanego kodu proszę :D)?
O dziwo, w innych miejscach opartych tylko na znakach większości/mniejszości tego problemu nie ma.
@Atexor: czepiam się, ale zamiast takiego długiego ifa możesz napisać
if(ktore < 0 && ktore > 7 && ktore != 41902) jest o wiele czytelniejsze, wydajne pewnie tylko odrobinę, bo operacja porównania nie jest jakoś zbytnie zasobożerna.
Chciałem jeszcze skorzystać do innej rzeczy w tym programie z rzeczy którą mi powiedziałeś mianowicie: while(!(cin >> var)), ale program ma kłopoty z wczytywaniem, tzn. każde użycie go dodaje mi +1 to powtórzenia wpisywania liczby.
@kuhar Na początku myślałem nad funkcją do wczytywania, ale okazało się że jest z tym problem, bo mam może z 10 przypadków, gdzie wczytuję liczby, które różnią się nie tylko wypisywanym cout'em w zależności od wprowadzonej liczby, czy liczbą warunków do spełnienia ale też wywołanymi metodami z osobnej klasy do nich. Dość to skomplikowane i ew. optymalizacja (przy użyciu funkcji) byłaby nieznaczna, a najpierw chcę aby wszystko działało i program był
Kiedyś na wykopie spotykało się ludzi z pasją, twórców, zajawkowiczów. Oni niestety odeszli albo dostali bana xD Teraz w gorących jak się nic nie dzieje to widać wpisy degeneratów, ćpunów i innego elementu. XD Quo Vadis Wykop.
#cpp
Mirki, pytanko. Otóż chcę zrobić program który ma być idi..odporny (operacje na liście jednokierunkowej) oparty na switch+case. I mam taki problem, że jak NAJPIERW wypiszę na ekranie np. literę(y) (lub inne znaki niebędące liczbą), to program się buguje.
O dziwo, jeśli zacznę bugowanie programu od złej (za dużej/małej) liczby całkowitej, a potem wstawiam litery to jest OK i program nie przechodzi dalej tylko pętla robi się dopóki nie podam prawidłowej liczby.
Poza tym program za każdym razem zalicza mi liczby wymierne ("po przecinku")jako całkowite, mimo że zmienna "ktore" jest typu int, aby pasowała do switch'a.
Jak się zabezpieczyć (( ͡° ͜ʖ ͡°)) przeciwko tym 2 rzeczom (tylko bez skomplikowanego kodu proszę :D)?
O dziwo, w innych miejscach opartych tylko na znakach większości/mniejszości tego problemu nie ma.
Fragment kodu:
http://pastebin.com/gyf26C2M
Obrazek pokazujący o co mi chodzi:
http://i.imgur.com/3UKEhnb.png
zawsze chcąc osiągnąć najlepszą wydajność należy
@kuhar Bool true/false kojarzę, ale nie za bardzo wiem jak to zrobić. Popróbuję potem jak ze stringiem będą problemy.
Zaś co to while(true) i w środku switcha - to mam podobnie z tą różnicą, że zamiast true mam ktore, ktoremu podstawiam 0 gdy chcę wyjść z programu ;)
if(ktore < 0 && ktore > 7 && ktore != 41902)jest o wiele czytelniejsze, wydajne pewnie tylko odrobinę, bo operacja porównania nie jest jakoś zbytnie zasobożerna.
http://i.imgur.com/Zzb7K7x.png
Widziałem atoi :). Ale skorzystałem z funkcji istringstream w
Chciałem jeszcze skorzystać do innej rzeczy w tym programie z rzeczy którą mi powiedziałeś mianowicie: while(!(cin >> var)), ale program ma kłopoty z wczytywaniem, tzn. każde użycie go dodaje mi +1 to powtórzenia wpisywania liczby.
Fragment