Hex char array?



  • Hi ihr,
    ich möchte gerne einen char array als hex ausgeben ...

    so sieht er aus

    char hexs[256] = "\x5e\x6b\x79";
    

    wenn ich ihn nu ausgebe kommt natürlich nur

    "^ky"

    nun möchte ich aber das er

    "5e6b79" ausgibt 😕

    weiß einer wie ich das machen kann?

    Mfg Lukas



  • #include <iostream>
    #include <cstring>
    using namespace std;
    
    int main()
    {
        char hexs[256] = "\x5e\x6b\x79";
        size_t anzahlHexs = strlen(hexs);
    
        for (size_t i = 0; i < anzahlHexs; ++i)
        	cout << hex << static_cast<int>(hexs[i]);
    }
    


  • while(hexs[p]) std::cout << std::hex << static_cast<int>(hexs[p++]);
    


  • danke für eure antwort ... nun habe aber ein problem.
    wenn der hex string 0x00 enthält bricht er ab x_x und gibt was falsches aus ... weiß einer warum?

    Mfg Lukas



  • weil strings nullterminiert sind. dann muss du dir die länge extra merken



  • hmm ok aber ich weiß nicht wie lang er ist 😕

    kann ich irgentwie die länge ermitteln?

    mfg Lukas



  • und wenn der string f enthält wird er 7 mal ausgegeben anstadt von 1 ma 😕

    Mfg Lukas



  • LolNoob schrieb:

    hmm ok aber ich weiß nicht wie lang er ist 😕

    kann ich irgentwie die länge ermitteln?

    mfg Lukas

    Eine Länge mit angeben?

    Ansonsten, da wir schon in C++ sind: wie wäre es mit std::vector<char> ?
    Da macht dann auch die 0-Terminierung keine Probleme mehr.



  • ok danke erstma ^^ wie benutzt man das denn? habe mich noch nie damit beschäftigt und in dem buch das ich habe wird au nicht drauf eingeganngen...

    hast du vielleicht ein tutorial??

    und zum 2ten problem :

    wenn der string f enthält wird er 7 mal ausgegeben anstadt von 1 ma 😕

    mfg lukas



  • LolNoob schrieb:

    ...in dem buch das ich habe wird au nicht drauf eingeganngen...

    => Wegschmeissen !!! Sofort.

    vector gehört in jedes C++-Buch.

    bei www.cppreference.com wird ein wneig dazu gezeigt.

    Gruß,

    Simon2.



  • LolNoob schrieb:

    ok danke erstma ^^ wie benutzt man das denn? habe mich noch nie damit beschäftigt und in dem buch das ich habe wird au nicht drauf eingeganngen...

    Wie schon Simon2 sagte ist das ein Grund gegen das Buch. Was zeichnet ein schlechtes C++ Buch aus? Versuchen wir mal eine kleine Aufstellung, um so mehr Punkte auf das Buch zutreffen um so schlechter ist es (Bereits wenn ein Punkt davon zutrifft sollte man sich überlegen das Buch aus der Hand zu legen:

    Negativliste C++ Buch

    • Es wird "void main(..." verwendet [ungültig]
    • Es wird bei den Includes der Standardbibliothek ein .h angeführt [veraltet]
    • C-Strings (char* char[]) werden vor den STL-Strings (std::string) besprochen [veraltet]
    • Die grundlegendsten STL-Klassen werden nicht angesprochen (std::string, std::vector...) [veraltet]
    • #defines werden für Konstanten benutzt [veraltet] - Wobei Includeguards und bedingte Compilierungen zulässige #define-Anweisungen sind

    cu André
    P.S: Anfängerbuch wäre z.B. eine aktuelle Ausgabe des "C++ Primer"


Log in to reply