unsigned char array ausgeben



  • Hallo zusammen,

    ich habe ein array unsigned char c[2], also 16 bit. Wie kann ich nun c ausgeben lassen?

    lg,
    blitzgeist



  • Hallo

    Da nicht klar (und unwahrscheinlich) ist ob dein Array Nullterminiert ist :

    std::cout << c[0] << c[1] << std::endl;
    

    bis bald
    akari



  • okay, war vielleicht etwas ungenau meine Frage. Habe in einem array c[4] vom typ byte, in dem 0en und 1en stehen. Diese möchte ich in einem Memo-Fenster ausgeben lassen. (nun ist auch der thread im falschen Forum =))

    Habe zwar schon etwas programmiert, aber adde mein Wert immer mit Memo1->Lines->Add(...), somit wird aber immer eine nue Line eingefügt. Welcher Befehl gibt mit alles in einer Zeile aus?



  • Hallo

    Ja, das sollte ins Builder-Forum.
    Auch hier kommst du um eine Elementweise Behandlung nicht umhin. Du kannst mit += einem AnsiString einen char hinzufügen.

    /Edit : Erst alles in einen internen AnsiString zusammenaddieren, dann erst den fertigen AnsiString per Add in das Memo bringen.

    bis bald
    akari



  • Alles klar, werde es ausprobieren. Ach ja, danke für die schnelle Antwort,:)



  • wieso geht das bzw. nicht:

    unsigned char bit = 1;
    unsigned char temp[4] ={0x01,0x02,0x03,0x04};
    
    Memo1->Lines->Add(bit);   //geht
    Memo1->Lines->Add(temp);  //geht nicht
    

    Habe das nicht so ganz verstanden mit

    Du kannst mit += einem AnsiString einen char hinzufügen.

    Kann mir jemand zeigen wie das richtig geht?

    lg,
    blitzgeist



  • Hallo

    Und zum dritten Mal : Dein Char-Array ist nicht Nullterminiert. Es ist damit für die üblichen C-String verarbeitenden Funktionen nicht feststellbar wo das Array aufhört.
    Desweiteren hast du so binäre, nicht druckbare Charwerte. Die kannst du zwar so in ein AnsiString packen, aber die Ausgabe wird trotzdem nicht toll sein.

    unsigned char bit = 1;
    unsigned char temp[4] ={0x01,0x02,0x03,0x04};
    AnsiString Buffer;
    for (int lv = 0; lv < 4; lv++)
      Buffer += temp[lv];
    Memo1->Lines->Add(Buffer);   //geht
    

    bis bald
    akari



  • danke für die Antwort... 🙂



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum VCL/CLX (Borland C++ Builder) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Log in to reply