DBO Geschrieben 16. April 2002 Geschrieben 16. April 2002 hi, ich hab ein char *str_seg1; welches folgenden Wert enthält: str_seg1 = "00000b01"..... wie man hier erkennen kann ist hier eine hexadezimalzahl abgespeichert........ nun möchte ich dieses in eine Dezimalzahl zurückwandeln.... folgendes hab ich schon versucht: long ltest = atol(str_seg1); ---->liefert 0 zurück d.h. Wert konnte nicht konvertiert werden (ist mir inzwischen auch klar warum, laut msdn steigt atol beim ersten zeichen das keine Zahl ist mit 0 aus) danach hab ich es probiert mit sprintf hinzubekommen....doch irgendwie hat da auch alles net geklappt...... vielen dank an alle die sich jetzt wegen mir den kopf zerbrechen :D P.S. Irgendwas noch unklar?? Wenn ja einfach posten..
DBO Geschrieben 16. April 2002 Autor Geschrieben 16. April 2002 an scanf hab ich auch schon gedacht nur hat des irgendwie als ich es probiert hab auch net geklapt.....aber da ich heut sowieso schon den ganzen Tag auf den schlau steh und an lauter dummen fehlern hängen bleib post ich vorsichtshalber nochmal den Code: char *str_seg2, *str_seg1; // //viel Code u. a. mit speicherreservierung und initialisierunv der //beiden variablen. //Inhalt von str_seg1 vor nächster Zeile: 00000b01 //Inhalt von str_seg 2 vor nächster Zeile: "" scanf(str_seg2, "%x", &str_seg1); //Inhalt nach der Zeile von str_seg1: 00000b01 //Inhalt nach der Zeile von str_seg2: "" p.s. speicher für str_seg2 wurde ausreichend resservierd
Klotzkopp Geschrieben 16. April 2002 Geschrieben 16. April 2002 Wenn Du scanf mit %x benutzt, musst Du einen Zeiger auf int mitgeben. Du willst doch von dem String weg.
DBO Geschrieben 16. April 2002 Autor Geschrieben 16. April 2002 das er die typen nicht konvertiern kann.... naja ich hab etz aber glaub ich die lösung und zwar *trommelwirbel* die funktion: strtol :eek: laut beschreibung müsste das genau das sein was ich suche......nur ich mach etz erstmal feierabend...ich sag euch dann morgen bescheid wies klappt cu
nic_power Geschrieben 16. April 2002 Geschrieben 16. April 2002 Sollte funktionieren, strtol wandelt strings in integers um und kann dabei zu einen Basis von 2-36 arbeiten. In Deinem Fall: long value=strtol(string, NULL, 16); Nic
DBO Geschrieben 18. April 2002 Autor Geschrieben 18. April 2002 -strtol hat wunderschön funktioniert....... Nur leider gibt es so eine funktion nicht für den Palm so das ich sie nachprogrammieren musste:( aber glücklicherweise war das einfacher als ich dachte bis dann......zum nächsten Problem
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden