1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

ASCII Zeichen in C++ anzeigen

Discussion in 'Programmieren' started by Burgold, Feb 7, 2010.

Thread Status:
Not open for further replies.
  1. Burgold

    Burgold Guest

    Hallo Leute,

    wie kann ich ein ASCII Zeichen in einen string einbinden? Für ein "ü" habe ich
    Code:
    string XY = "Zur\x81 \bck";
    geschrieben. Die ausgabe ist dann einfach "Zurück". Aber wie mache ich das jetzt für z.B. "é" ??? Laut der ASCII Tabelle hat "é" den Wert E9 oder 233...doch dann kommt entweder eine Fehlermeldung oder das gleiche Zeichen, wie wenn ich é angebe,,,

    könnt ihr mir sagen, wie ich dann "Préférences" schreiben muss?

    Danke
     
  2. Fettbemme

    Fettbemme Halbes Megabyte

    Um ein é zu bekommen schreibst Du in Dein String halt das "é" rein, sprich Du tippst erst das " ´ " (dieses Hochkomme halt) und dann das "e".
     
  3. Burgold

    Burgold Guest

    also wenn ich "´e" eingebe, wird zwar das "e" angezeigt, aber das "´" wird dann nicht richtig angezeigt, so wie wenn ich direkt "é" eintippe...
     
  4. Fettbemme

    Fettbemme Halbes Megabyte

    Komisch, vielleicht nimmst Du das falsche "Hochkomma". Ich meine das was auf der deutschen Tastatur zwischen dem Fragezeichen und der Backspace Taste ist. Wenn Du das "Hochkomma" drückst, dann wird das noch nicht auf dem Bildschirm dargestellt, erst nachdem Du eine weitere Taste gedrückt hast. Bei einem "e" wandert das "Hochkomma" auf das "e" bei einem "T" hast Du danach"´T".

    Dumme Frage, wie hast Du in deinen Postings das "é" hinbekommen? Ich bin mir jetzt nicht sicher ob wir nicht evtl. aneinander total vorbeireden....

    Übrigens: Dein "é" ist nicht in der ASCII Tabelle enthalten, da ASCII nur von 0x00 bis 0x7F geht. Das was Du suchst ist denke ich sowas wie die Codepage 437 oder http://de.wikipedia.org/wiki/ISO_8859. Da kommen wieder die guten alten DOS Zeiten hoch :)
     
  5. Burgold

    Burgold Guest

    Das kann sein.... Also erkläre ich es mal etwas anders:
    Code:
    cout << "Préférences";
    
    Ausgabe:
    
    PrÚfÚrences
    Eine andere Stelle sieht wie folgt aus:
    Code:
    cout << "Hauptmen\x81";
    
    Ausgabe:
    
    Hauptmenü
    Wie kann ich also dafür sorgen, dass beim ersten Code die "é"s anständig angezeigt werden, so wie mit dem "ü" beim zweiten Code??
     
  6. kazhar

    kazhar Viertel Gigabyte

    sehr einfach: das &#252; steht im (erweiterten) ascii satz drinnen, wird also vom iostream korrekt ausgegeben.

    das &#233; ist ein zusammengesetztes unicode zeichen; daf&#252;r gibt es keine entsprechung in der ascii table.
     
  7. Burgold

    Burgold Guest

    So weit bin ich mitlerweile auch...aber wie kann ich es denn dann schreiben? gibt es da vielleicht andere Befehler, zur Ausgabe von solchen "Sonderzeichen" oder ein anderes Escape Zeichen ?
     
  8. kazhar

    kazhar Viertel Gigabyte

    hmmm......

    ich hab das mal mit stdio und gcc probiert:
    Code:
    #include <stdio.h>
    int main()
    {
         printf("Pr&#233;f&#233;rences\n");
    }
    das ergebnis war
    Code:
    Pr&#233;f&#233;rences

    edit: mir ist grade aufgefallen, dass das von mir geschriebene so nicht ganz korrekt ist.

    ich habe den quelltext (und damit auch den string) einfach weils schneller geht mit edit.exe in der kommandozeile geschrieben. daher ist das ganze auch in der "dos" codierung: das &#233; hat in dem fall den code 0x82

    [​IMG]
     
    Last edited: Feb 8, 2010
  9. Burgold

    Burgold Guest

    cool...danke...jetzt klapt es auch bei mir...
     
Thread Status:
Not open for further replies.

Share This Page