enum in string umwandeln und wieder zurück



  • Ich habe folgendes Problem: ich habe zwei Programme, die mithilfe einer Funktion strings hin- und herschicken können. Für eine spezielle Aufgabe muss ich jetzt eine Information übertragen, die auf beiden seiten durch eine Variable desselben enum typs dargestellt wird. Die einfachste und praktischste Lösung die ich mir vorstellen kann ist, die Variable in einen int zu wandeln, danach in einen string und entsprechend zurück. die Frage ist jetzt: Ist eine solche Umwandlung auf beiden Seiten eindeutig, also kommt immer das raus was man auf der anderen Seite reingetan hat und wie macht man das am besten?



  • Hallo

    Ich bin mir grad nicht sicher, ob die Zahlenbelegung bei enums im C++ Standard fest vorgegeben ist. Zur Sicherheit kannst du ja die Zahlenbelegung selber festlegen :

    enum Test {a = 1, b = 2, ...};
    

    bis bald
    akari



  • akari schrieb:

    Ich bin mir grad nicht sicher, ob die Zahlenbelegung bei enums im C++ Standard fest vorgegeben ist.

    Ja, ist sie. Wenn keine expliziten Angaben gemacht werden, entspricht der erste Enumerator dem integralen Wert 0, und jeder weitere dem Wert des Vorgängers plus Eins.

    C++ Standard, 7.2/1 schrieb:

    The identifiers in an enumerator-list are declared as constants, and can appear wherever constants are required. An enumerator-definition with = gives the associated enumerator the value indicated by the constant-expression. The constant-expression shall be of integral or numeration type. If the first enumerator has no initializer, the value of the corresponding constant is zero. An enumerator-definition without an initializer gives the enumerator the value obtained by increasing the value of the previous enumerator by one.


Anmelden zum Antworten