2017-01-25 5 views
0

Ich habe ein kleines Spiel, das mit einem Menü beginnt und der Spieler kann zwischen 6 Optionen wählen. Die Entscheidung des Spielers wird mit einer cin in eine char Variable geschrieben. Das funktioniert gut und das Spiel beginnt mit der Option. Aber das Spiel beginnt auch, wenn der Spieler einen anderen Wert eingibt und dann das Spiel Fehler hat. Um es zu beheben, wollte ich einen Zeichensatz mit den möglichen Optionen verwenden. Aber bei jedem Versuch, Werte in die Variable set einzufügen, bekomme ich einen Compilerfehler.Wie fügt man Zeichen in das Set ein?

Wenn ich versuche, gesetzt zu initialisieren, während erklärte ich „‚a‘wurde in diesem Rahmen nicht deklariert“ erhalten:

set <char> Options {a,b}; 

Wenn ich es so versuchen, zu „keine passende Funktion für Aufruf 'std :: set :: insert (const char [2])' | "

set <char> Options {"a","b"}; 

Wenn ich es so tun, bekomme ich auch „‚a‘wurde in diesem Gültigkeitsbereich deklariert“

set <char> Options; 

int main() 

Options.insert(a); 

Ich habe auch versucht, aber ich bekommen dann wieder " keine passende Funktion für Aufruf von 'std :: set :: insert (const char [2])'“

set <char> Options; 

int main() 

Options.insert("a"); 

jetzt also bin ich sehr verwirrt. Mit Integer habe ich keine Probleme, aber wenn ich versuche, es mit Zeichen zu verwenden, habe ich es nicht funktioniert.

Kann jemand helfen?

(Dies ist meine erste Frage hier, ich hoffe, es ist gut formuliert)

+0

doppelte Anführungszeichen weisen auf eine Zeichenfolge, verwenden Sie einfache Anführungszeichen um ein Zeichen zu bezeichnen. – Theo

Antwort

5

Zeichenliterale mit Apostroph geschrieben sind:

set<char> Options {'a', 'b'}; 
//     ^^^ ^^^ 
+0

Vielen Dank. Ich wusste es nicht! – Ingo

+0

uniform initialization validiert den Typ – Steephen

Verwandte Themen