Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

string w warunku

Ostatnio zmodyfikowano 2018-03-11 00:54
Autor Wiadomość
dott94
Temat założony przez niniejszego użytkownika
string w warunku
» 2018-03-11 00:17:37
Po długiej przerwie wróciłem do programowania (oczywiście poziom podstawowy), kumpel miał parę pytań i w sumie próbuję coś zrobić i nie potrafię mu pomóc, zerknijcie na kod:

C/C++
void opis()
{
    string komenda;
    bool k1;
    k1 = false;
    cout << "KALKULATOR" << endl;
    cout << "Witam w wielofunkcyjnym kalkulatorze, w ktorym policzysz kilka roznych rodzajow opreacji matematycznych." << endl;
    cout << "Aby kontynuowac wpisz 'dalej' ";
    cin >> komenda;
    while( k1 == true )
    {
        if( komenda == "dalej" ) k1 = true;
        else cout << "zla komenda, sprobuj ponownie!" << endl;
       
    }
    system( "cls" );
}

ogólnie w mainie program najpierw wywołuje funkcję opis, a następnie przechodzi (a przynajmniej powinien) do funkcji menu.
no i tu jest pies pogrzebany - niezależnie od tego co wpiszesz, program przechodzi do menu ... coś pokręciłem w tych stringach?

z góry dzięki za odpowiedź ;)
P-169902
pekfos
» 2018-03-11 00:29:55
Wstępna wartość k1 nie spełnia warunku pętli.
P-169903
dott94
Temat założony przez niniejszego użytkownika
» 2018-03-11 00:33:38
czyli jeśli dobrze zrozumiałem, nie deklaruję wartości k1 na początku, tylko robię coś takiego:

C/C++
while( k1 == true )
{
    if( komenda == "dalej" ) k1 = true;
    else
    {
        k1 = false;
        cout << "zla komenda, sprobuj ponownie!" << endl;
    }
}
system( "cls" );

dobrze rozumiem? ;)


Ogólnie to można by to zrobić na tablicy char'ów, ale wtedy program nie będzie idioto-odporny. ;p
P-169904
pekfos
» 2018-03-11 00:35:49
C/C++
bool k1;
k1 = false;
//..
while( k1 == true ) // Pętla nie wykonuje się.
P-169905
dott94
Temat założony przez niniejszego użytkownika
» 2018-03-11 00:36:39
nadal nie działa, czyli źle rozumuję ;)

może zamiast bawić się w "ambitne" programowanie, po prostu zrobię "system("pause")" , bez zabaw w stringi ;p
P-169906
pekfos
» 2018-03-11 00:38:12
Podałem fragment twojego kodu, więc nie powinno działać. Cały twój problem jest zawarty w tym fragmencie.
P-169907
dott94
Temat założony przez niniejszego użytkownika
» 2018-03-11 00:44:34
ok, czaję że błąd leży w deklaracji wartości k1 przed pętlą.
C/C++
while( k1 == true )
{
    if( komenda == "dalej" ) k1 = true;
    else
    {
        k1 = false;
        cout << "zla komenda, sprobuj ponownie!" << endl;
    }
}
system( "cls" );

ale jak to wrzucam w pętlę (tak jak na górze) to nadal nie działa, jakaś kolejna podpowiedź? ;)

serio, C++ ostatni raz ruszałem ponad rok temu i to raczej były "podstawowe" zabawy ;p
P-169908
pekfos
» 2018-03-11 00:53:25
A może byś tak przeanalizował co twój kod robi..? Ustawianie wartości i sprawdzanie warunków powinno być intuicyjne, niezależnie od długości przerwy od programowania.
P-169909
« 1 » 2
  Strona 1 z 2 Następna strona