Wpis z mikrobloga

#programowanie

#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
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@japer Postaram się zrobić konwersję stringa na inta. Zobaczymy co z tego wyjdzie.

@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 ;)
  • Odpowiedz
@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.
  • Odpowiedz
@kuhar:

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
  • Odpowiedz
@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ł
  • Odpowiedz