Casting-Problem



  • Hallo!
    Ich habe einen Zeiger auf einen const char, nun muss ich den jedoch in ein double casten. Wie geht das? double wert =(double)char; funktioniert nicht.
    🙂



  • willst du den zeiger oder den inhalt casten?

    für den zeiger:

    char* a
    double b=reinterpret_cast<double>(a);
    


  • Ist das im const char* ein String (sowas wie "1.2345") oder moechtest du den ASCII-Wert eines einzelnen Buchstabens (Buchstabe 'a' hat z. B. ASCII-Wert 97) in einen Double casten?



  • Im Zweifel suchst du

    #include <stdlib.h>
    
    /* ... */
    
    const char *foo = "3.1415926";
    double x = atof(foo);
    

    Das ist allerdings C. In C++ würdest du statt const char* nen std::string benutzen und auf stringstream zurückgreifen:

    #include <sstream>
    #include <string>
    
    //...
    
    std::string foo = "3.1415926";
    std::stringstream str_in(foo);
    double x;
    
    str_in >> x;
    

    Wenn du aus irgendeinem Grund den C-Stil in C++ benutzen willst, vergiss nicht, dass der Header da <cstdlib> heißt und die Funktion im namespace std ist.



  • Danke!
    Ich werde es mal mit dem stringstream versuchen.


Anmelden zum Antworten