zeichenausgabe

Gast #532463
hallo

ne frage

habe in einer txt datei einen ascii befehl stehen mit <stx>FFHD4<eot>

wenn ich mit copy and paste den befahl in mein compailer mache ändert er 
mir das anfangszeichen und das end zeichen. und gibt es nach dem 
kopailieren soaus. ich möchte es aber nicht so. im ht gibt er mir für 
die zeichen die ich haben möchte den schwarzen smilie  und die schwarze 
raute aus . so sollte das dann sein aber nach dem kompailieren ist das 
nicht mehr so.



bräuchte da mal hilfe
Gast
@baur

>wie sage ich meinem compailer (c) das ein zeichen in hex ist

Wenn dein Comp_i_ler ein C Compiler ist, sollte eine Stringdefinition 
mit Hexwerten so funktionieren.

char my_string[]="Hello HEX \xAB";

wobei ab eine hexadezimale Zahl ist. VORSICHT bei solchen Sachen mitten 
im Text, das kann der Compiler falsch verstehen. Siehe

Beitrag "Sonderzeichen in konstanten String"

MfG
Falk
Ich geh mal davon aus, dass du deinen Befehl in einem
String hast.

Also irgendwas in der Form

char Command[] = "<stx>FFHD4<eot>";

<stx> ist im ASCII Code das Steuerzeichen mit dem Code 3
<eot> ist im ASCII Code das Steuerzeichen mit dem Code 4

um Zeichen mit ihrem Code in einen String einzubetten, kann
man ein spezielles Escape Symbol \x benutzen

char Command[] = { "\x03" "FFHD4" "\x04" };
Gast
re: Karl heinz Buchegger


also das hört sich recht gut an.
habe das auch gleich versucht
nur wenn ich das mit einem printf ausgebe printf("%s\n",Command)
zeigtz es mir die zeichen "\x03" und "\x04" über ht nicht an.


brauche die zeichen aber oder sind die dann unsichtbar irgend wie?
baur wrote:
> warum kann ich die dann über einen anderen controller auf dem ht
> sehen????

Du solltest dir mal ein anderes Terminalprogram nehmen, welches
die empfangenen Bytes auch in Hex darstellen kann.

\x03 und \04 sind Steuerzeichen. HT zeigt die nicht an.
Wenn du ein anderes Programm hast, welches dir einen
Smiley und eine Raute im HT hinmalt, dann solltest
du mal überprüfen (mit so einem Hex-Dump Terminal
Program) was dieses Programm nun wirklich über die
serielle Schnittstelle schickt.

Warum gehts dir?
Dass das Programm einen Smiley hinmalt, oder dass es
das Zeichen mit dem Code \x03 schickt?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.