string Zeichen in einen Int umwandeln mit DOS Zeichensatz



  • ok das leuchtet ein.
    Wie ich auf mehr kam, ist mir eh nicht Schlüssig, jetzt habe ich diese
    Faktor ausgeschaltet und NewNum kann maximal 255 sein



  • Wie kann ä -28 sein ???
    bei
    Zeichen = ä

    C = Zeichen.c_str();
    Num = (int) (*C);
    

    Das darf nicht sein, sonst löst mein Prog einen Fehler aus, weil es eine Zahl
    unter 0 nicht verträgt



  • Tim06TR schrieb:

    Wie kann ä -28 sein ???

    Der Typ char kann sich wie signed char und unsigned char verhalten, je nach Implementierung.

    Tim06TR schrieb:

    Das darf nicht sein, sonst löst mein Prog einen Fehler aus, weil es eine Zahl
    unter 0 nicht verträgt

    Dieser Fehler ist natürlich streng geheim, oder wie?

    Zum dritten Mal: Du löst keine Probleme, indem du einfach Casts einsetzt! Dazu müsste man wissen, was man tut, und das ist bei dir offensichtlich nicht der Fall. Wenn du es nicht endlich zu Stande bringst, zu sagen, was du erreichen willst und nicht wie, wird das auch weiterhin so bleiben. Ist es denn wirklich so schwer, ein Problem vernünftig zu beschreiben? 🙄



  • Ich dachte das wäre klar geworden. ALSOOO
    Ich muss ein belibiges Zeichen in eine Zahl umwandeln, wie der Comp das macht ist mir Schnuppe, Hauptsache es kommt immer dasselbe raus und wichtig ist, dass die Zahl größer als 0 Null ist.
    Es ist KEINE MÖGLICHKEIT eine große Tabelle anzulegen, wo steht welches Zeichen welche Zahl ist, dass muss doch auf irgendwie anders gehen.
    Möglichst eine Zahl im Dezimalen System, Binär oder Hex sind aber genauso möglich.

    Die Methode Oben hatte bis auf den Angesprochenen Fehler aber auch gut Funktioniert.

    SO Das nochmal zu dem was ich will.



  • Und was ist genau das Problem an der Lösung auf der ersten Seite?

    char zeichen = 'a';
    int nummer = static_cast<int>(nummer);
    

    (Es ist eigentlich total unnötig zu casten oder überhaupt einen anderen Typ zu nehmen, da char s auch integrale Typen sind. Aber für das Prinzip...)

    Und falls du nur Zahlen grösser als Null willst, nimmst du eben unsigned char .



  • unsigned war der Springende Punkt, danke jetzt gibt er mir meinen Erwarteten Wert
    aus. (Expectet Value Recieved :p , an alle Compiler dieser Welt)

    DANKE !



  • Okay, das wäre aber auch einfacher gegangen...

    Vielleicht fürs nächste Mal gleich sagen, was du erreichen willst und nicht etliche fehlgeschlagene Versuche darstellen, anhand denen wir erraten müssen, was dir überhaupt wichtig ist.


Anmelden zum Antworten