Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

07.05.2006, 11:29

Problem Mit if-anweisung

ICh habe ein Problem mit einer if-anweisung. Sie soll nur ausgeführt werden wenn entsprechender text in der Variablen steht andernfalls soll else ausgeführt werden. Sie wird zwar ausgeführt, allerdings immer egal welcher text eingegeben wurde.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cout << "Zu Welchem Job \x84ndern?" << endl;
        cin  >> Sauswahl;
        if (Sauswahl == "Novice" || "Swordman" || "Archer" || "Acolyte" ||
            "Mage" || "Merchant" || "Thief" || "Knight" || "Crusader" ||
            "Hunter" || "Bard" || "Dancer" || "Priest" || "Monk" || "Wizard" ||
            "Sage" || "Blacksmith" || "Alchemist" || "Assassin" || "Rogue") {
            
            job = Sauswahl;
            cout << "Job ge\x84ndert" << endl;
            wait();
}
        else {
            cout << "Jobwechsel fehlgeschlagen" << endl;
            wait();         
        }

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

07.05.2006, 11:40

Re: Problem Mit if-anweisung

Zitat von »"gamefreak"«

Quellcode

1
if (Sauswahl == "Novice" || "Swordman" || ...

Das geht nicht. Man kann Strings nicht (sinnvoll) mit ODER verknüpfen.
Was du eigentlich willst, ist:

C-/C++-Quelltext

1
if(Sauswahl == "Novice" || Sauswahl == "Swordman" ...

Sicaine

unregistriert

3

07.05.2006, 11:41

Du brauchst 1. strcmp und zum anderen geht sowas nicht du must schon alles testen:

if(auswahl ... ||auswahl ... || auswahl ...

Sheddex

unregistriert

4

07.05.2006, 11:43

Statt:

C-/C++-Quelltext

1
if (Sauswahl == "Novice" || "Swordman" || "Archer" || "Acolyte")


Das hier:

C-/C++-Quelltext

1
if (Sauswahl == "Novice" || Sauswahl == "Swordman" || Sauswahl == "Archer" || Sauswahl == "Acolyte")


Keine Funktionsgarantie ;)

[edit]: Ok, wenn sogar David das schreib wird's wohl stimmen ;)

Anonymous

unregistriert

5

07.05.2006, 11:46

Also hier im Topic wird der Vogel ja regelrecht abgeschossen mit Patriotraketen.

So vergleicht man doch keine Strings! Da "Sauswahl" 100%ig ein char-Array ist wundert es mich das dies überhaupt noch läuft und keine Fehlergebnisse bringt.

Use std::basic_string<T> und noch eine runde Unicode.

6

07.05.2006, 12:45

danke jetzt gehts

@nix da
Ich verstehe nicht was du meinst jetzt klappt alles ohne pros und ohne irgendwelche fehlermeldungen

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

7

07.05.2006, 12:48

Zitat von »"nix da"«

Da "Sauswahl" 100%ig ein char-Array ist

Steht nirgendwo ...

Anonymous

unregistriert

8

07.05.2006, 12:51

David Scherfgen
Bei dem jetzigen Code von ihm kann man mit hoher Wahrscheinlichkeit davon ausgehen.

gamefreak
Ist Sauswahl ein char-Array oder ein std::basic_string<T>?

9

07.05.2006, 14:12

letzteres

Werbeanzeige