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

[C++] Operator logiczny || powoduje problemy z wykonywaniem instrukcji if

Ostatnio zmodyfikowano 2014-06-05 21:26
Autor Wiadomość
Twixes
Temat założony przez niniejszego użytkownika
[C++] Operator logiczny || powoduje problemy z wykonywaniem instrukcji if
» 2014-06-05 21:11:29
Jestem bardzo początkującym programistą C++. Ostatnio popełniłem pewien prosty programik służący do podstawowych obliczeń. Mam z nim jednak pewien problem. Otóż chciałem, aby program automatycznie odrzucał nieobsługiwany znak działania informując o błędzie i nie przepuszczając użytkownika, póki nie wprowadzi prawidłowego znaku. Niestety nie wszystko działa jak trzeba.
Tak wygląda fragment kodu odpowiedzialny za tą funkcję:
C/C++
type:;
cout << "Znak działania: ";
cin >> type;
if( type != "+" || "-" || "*" || "/" )
{
    cin.clear(); //flagi błędu
    cout << "Wprowadź prawidłowy znak działania!" << endl << endl;
    cin.sync(); //bufor strumienia
    goto type; //powrót
}
Problem polega na tym, iż po dodaniu operatora || instrukcja if jest wykonywana ZAWSZE, bez względu na to, czy któryś z warunków jest spełniony. Bardzo proszę o pomoc. :)
P-111525
pekfos
» 2014-06-05 21:15:50
Cały warunek jest zawsze spełniony, niezależnie od tego, czy to działa jak chcesz, czy nie. W tym przypadku to drugie.
P-111526
Twixes
Temat założony przez niniejszego użytkownika
» 2014-06-05 21:22:51
W takim razie jak doprowadzić do sytuacji, w której instrukcja zostanie wykonana, jeśli wartością stringu "type" nie jest ani "+", ani "-", ani "*", ani "/"?
P-111530
pekfos
» 2014-06-05 21:23:46
C/C++
if( type != "+" && type != "-" && etc )
P-111531
Twixes
Temat założony przez niniejszego użytkownika
» 2014-06-05 21:26:11
Dzięki, wszystko działa jak należy. :)
Zamykam temat.
P-111532
« 1 »
  Strona 1 z 1