• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pobieranie błędnych wartości

Object Storage Arubacloud
0 głosów
206 wizyt
pytanie zadane 29 grudnia 2020 w C i C++ przez Adyn Nowicjusz (190 p.)

Dzień dobry,

przychodzę tu z pewnym problemem ktory nie daje mi od dluzszego czasu spokoju. Otóż, musze uzyskac w programie format "a+b" (bez zadnych spacji i innych znakow). Dodatkowo zmienna a oraz b sa stringami. Aby to uzyskac wprowadzam jedna zmienna ab, wyszukuje znaku  (+,-,*,/) a nastepnie rozdzielam na dwie liczby. Wszystko dziala poprawnie, jednak na samym starcie programu musze zapytac uzytkownika o liczbe powtorzen calego programu, gdy uzytkownik ja podaje funkcja find_first_of nie wiedziec czemu szuka tych znakow w tej liczbie powtorzen, a nie w liczbie ab. Ponizej zamieszczam kod, bylbym wdzieczny za pomoc.

P.S. probowalem juz to rozbic na dwie funkcje pobierajace odpowiednie argumenty, w obu przypadkach efekt ten sam :/

#include <iostream>
#include <string>
using namespace std;

void liczbaPowtorzen(void);


int main()
{
    string a;
    string b;
    string ab;
    int znak;
    liczbaPowtorzen();
    getline(cin,ab);
    cout << endl;
    cout << ab;
    znak = ab.find_first_of("+");
    if(znak < 0)
    {
        cout << "ab: " << ab;
        znak = ab.find_first_of("-");
        if(znak < 0)
        {
            znak = ab.find_first_of("*");
            if(znak < 0)
            {
                znak = ab.find_first_of("/");
            }
        }
    }
    cout << " miejsce znaku: " <<znak << endl;
    return 0;
}

void liczbaPowtorzen(void)
{
    int liczbaPowtorzen;
    cout << "Wprowadz liczbe potworzen: \n";
    cin >> liczbaPowtorzen;
    if(liczbaPowtorzen <0 || liczbaPowtorzen >200)
    {
        cout << "Bledna liczba powtorzen.\n";
        do
        {
            cout << "Wprowadz odpowiednia liczbe powtorzen, przedzial 0-200\n";
            cin >> liczbaPowtorzen;
        }while(liczbaPowtorzen > 200 || liczbaPowtorzen < 0);
    }
}

 

1 odpowiedź

+1 głos
odpowiedź 30 grudnia 2020 przez TOM_CPP Pasjonat (22,640 p.)
edycja 30 grudnia 2020 przez TOM_CPP


Zamień

 getline(cin,ab);

na

cin >> ab;

Poza tym funkcja liczbaPowtorzen powinna zwracać wartość wprowadzoną przez użytkownika. Teraz jej wywołanie niczego nie wnosi do programu, poza pozostawieniem nieuporządkowanego strumienia cin dla funkcji getline.

komentarz 30 grudnia 2020 przez Adyn Nowicjusz (190 p.)
Dziękuje, w początkowym zamysle funkcja liczbaPowtorzen w ogole nie istnieje, po prostu chcialem zobaczyc czy jej wprowadzenie pomoże mi jakoś z moim problemem. To proste rozwiazanie, na ktore jednak nie wpadlem rozwiazalo caly problem, takze bardzo dziekuje.

Podobne pytania

+1 głos
2 odpowiedzi 522 wizyt
pytanie zadane 12 czerwca 2019 w C i C++ przez k222 Nałogowiec (30,150 p.)
0 głosów
1 odpowiedź 134 wizyt
pytanie zadane 19 października 2018 w C i C++ przez MAXIM7 Obywatel (1,990 p.)
–1 głos
3 odpowiedzi 1,308 wizyt
pytanie zadane 31 stycznia 2017 w C i C++ przez Maciek123233 Gaduła (3,400 p.)

92,549 zapytań

141,392 odpowiedzi

319,518 komentarzy

61,934 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...