Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Rekomendowane odpowiedzi

Opublikowano

Witam ,proszę o pomoc.

 

Pisze program konsolowy i napotkałem na problem na tej pętli:

 

BC jest typu short;

 

To jest ukryta treść, proszę

 

Problem polega na tym ,że w momencie wpisania litery , ciągu znaków lub liczby ,która nie mieści się w typie short program się zapętla i drukuje w nieskończoność "Proszę wpisać 1 lub 2 " . To ma być program użytkowy i nie chcę ,żeby cały się posypał ,kiedy ktoś zrobi błąd. Jak można rozwiązać ten problem?

Opublikowano (edytowane)

Użyj zmiennej char, zamiast short.

 

@N1ght

Myślałem jeszcze o czymś innym. Tzn, żeby całkowicie typ liczbowy zastąpić tym jednym znakiem, przy czym nie sprawdziłem tego dokładnie i program dla kilku znaków zaczynał głupieć. Robił to w sposób przewidywalny, tzn powtarzał cout, tyle razy ile wprowadzono znaków. Zastąpiłem więc surowego chara jednoelementową tablicą typu char i póki co nie udało mi się programu wykrzaczyć :P

To jest ukryta treść, proszę

 

Z ciekawości możecie sprawdzić jakby do tego zadania nadawały się funkcje printf i scanf.

 

@@N1ght

Dla samego chara niby wszystko jest ok, dopóki użyszkodnik wpisuje tylko jeden znak. Sytuacja się komplikuje, gdy wpisze coś bardziej przewrotnego, jak "dgsdfg213423". Wtedy ten char zachowuje się jak tablica, tzn w każdym kroku pętli przyjmuje kolejny znak z tego ciągu i tyle razy wyświetla napis, albo całkiem wykrzacza program. W sytuacji, kiedy to jest jednoelementowa tablica, to możesz nawet w polu odpowiedzi napisać esej a program będzie miał głęboko w poważaniu wszystko, prócz tego pierwszego znaku.

Edytowane przez Propagandhi
Opublikowano

To jest ukryta treść, proszę

 

Jesli bedziesz uzywać sposobu od Prop'a, to nie zapomnij zrobić konwersji z ansii na int... (funkcją "atoi", potem sprawdzaj liczbę, którą funkcja zwróci)

 

@Prop

Tylko po co robić tablicę dla jednego elementu ? xD

×
×
  • Dodaj nową pozycję...