enum
-
wenn ich ein enum habe, z.b.
enum Day { Monday = 0, Tuesday, Wednesday }code e = getCode();ich will nun e als textstring z.b als (char*) bekommen, damit ich den wert in ein logfile schreiben kann. wie kann ich das konvertieren.
und kann ich, auch mit der zahl als schlüssel mir den dazugehörigen enum-wert ausgeben lassen?
also, z.b. bei 1 Tuesday und bei 2 Wednesday?
-
nein wuesst ich jetzt nicht. aber mach doch einfach ein char array draus.
char *Day[]= {"","Montag","Dienstag"...
-
Enum-Werte werden beim Compilieren in Zahlen-Werte umgewandelt.
Wenn du die Enum-Werte ebenfalls als Zeichenketten haben möchtest wirst du nicht darum herumkommen eine Funktion zu schreiben, die in der Lage ist die Enum-Werte einer Zeichenkette zuzuordnen und umgekehrt.

-
asr schrieb:
ich will nun e als textstring z.b als (char*) bekommen, damit ich den wert in ein logfile schreiben kann.
den integer-wert als char bekomme ich mit atoi().
und für das andere werde ich wohl eine funktion schreiben.
-
Du musst doch einfach nur ein Array anlegen wie das bereits vorgeschlagen wurde:
enum Day { Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag }; char const *DayString[7] = { "Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag" }; std::cout << DayString[ Montag ] << std::endl; //Output: MontagDa brauchst du doch keine spezielle Funktion für.
BR
-
Besser:
enum Day { Montag = 0, Dienstag = 1, Mittwoch = 2, ..... };Dann sieht man auch, dass die Zahlenwerte für das Programm relevant sind. Außerdem sind dann die Zahlenwerte fest zugeordnet.
-
Mathias schrieb:
Außerdem sind dann die Zahlenwerte fest zugeordnet.
Das sind sie ohne explizite Angabe aber auch.