CAST char* To Byte



  • Hallo,

    ich versuche via Socketverbindung daten von meinem Server zu erhalten.
    data wird bei dem funktionsaufruf übergeben (const char* data)

    BYTE header;
    header = *(BYTE *)data;
    std::cout << header << std::endl;
    data += sizeof(BYTE);
    
    char name[25];
    memcpy(&name, data, sizeof(name));
    std::cout << name << std::endl;
    data += sizeof(name);
    

    also der name wird mir ohne probleme ausgegeben. nur bei dem header kommt leider nicht der richtige zahlenwert.

    Mfg


  • Mod

    Wie man Probleme nachstellbar und nachvollziehbar macht

    Praktisch jede Zeile in deinem Programm enthält etwas, das je nach Kontext in Ordnung sein könnte oder aber vollkommener Unsinn ist. Ohne den Kontext zu kennen, können wir nur raten, was genau nun falsch ist.



  • BYTE ist wahrscheinlich als (unsigned) char definiert, weshalb der ostream das als code für ein Zeichen interpretiert. Du kannst das byte nach int casten.



  • danke für die antwort. aber nach int casten hab ich schon versucht. da kommt irgend ne hohe zahlt.



  • hr4rjuku schrieb:

    danke für die antwort. aber nach int casten hab ich schon versucht. da kommt irgend ne hohe zahlt.

    Wie und wo hast du das gemacht?
    In Zeile 2 (Zuweisung) oder 3 (Ausgabe)?


Log in to reply