Seite 1 von 1

C++ switch und QChar

Verfasst: 19. Oktober 2006 01:45
von joebar
Hallo,

habe mal eine Frage ob das so elegant ist, oder ob es einen besseren Weg gibt:

Code: Alles auswählen

switch (get_param(line,pos).toAscii()){
 case 'c':
 do_ something;
 break;
 case 'u':
 do_something;
 break;
}
get_param() liefert ein QChar zurueck damit kann die switch Anweisung natuerlich nichts anfangen und der Compiler meckert. Kann ich irgendwie mit dem toAscii() in Probleme laufen? Alle Zeichen die von get_param() geliefert werden koennen sind latin-1 Zeichen.

Danke,
J.

Verfasst: 19. Oktober 2006 07:39
von Christian81
Solange es nur latin1-Zeichen sind, reicht natürlich ein .toLatin1(). Andernfalls sollte man .unicode() verwenden und dann nach den unicode-Werten switchen.

Verfasst: 19. Oktober 2006 18:27
von joebar
Danke. Wie wuerde ich denn mit unicode Zeichen switchen? Muesste ich da irgendwas beachten?

Gruss,
J.

Verfasst: 19. Oktober 2006 18:35
von Christian81
Man müsste dann den ensprechenden Unicode-Wert verwenden anstatt dem Zeichen da der Compiler 'a' wohl nicht in ein ushort wandeln kann. Und Sobald Du 'richtige' Unicode-Zeichen wie z.B. Chinesisch oder so verwnedest, musst du es eh als ushort codieren da es ja nicht als ascii darstellen kannst.