Dumme Frage: Umlaute ?
-
Wollte nur mal wissen wie man bei C / C++ Umlaute darstellen kann? z.b. Ä,Ö,ß usw...? Danke schonmal für die Hilfe
-
Als Variablennamen: gar nicht.
Als Textzeichen: entweder direkt eingeben oder als Escape-Codes (z.B. '\xC4'='Ä').
-
Ja möchte es als Textzeichen! Wenn ich es normal eingebe kommen da nur wirre Zeichen anstatt die Umlaute!
-
Dann mußt du dir eine ASCII Zeichentabelle suchen und dir die nötigen Escape-Sequenzen dort rauskramen.
zur Not jagst du die folgende Schleife einmal durch deinen Rechner:
cout.flags(ios::hex); for(int c=32;c<256;++c) cout<<setw(3)<<c<<" "<<(char)c<<"\t";
-
Siehe auch Konsolen-FAQ.
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Welche Version von VS verwendest Du denn bzw. welchen Compiler und welche CRT???
Siehe: wprintf has no UNICODE support...
http://blog.kalmbachnet.de/?postid=5Per default wird die "C"-Locale verwendest und das kennt nunmal nur Zeichen zwischen 1 und 127. Alle anderen Zeichen werden verworfen.
Mit MS-VC8 wurde das etwas verbessert und jetzt kann man auch andere Zeichen ausgeben.
Die Console muss aber natürlich auch in der Lage sein diese Zeichen darzustellen! Nötigenfalls musst Du hier eine andere Schriftart wählen (z.B. für Chinesisch).
-
Hallo Andy_cux,
Die deutschen Umlaute von ASCII-Unix und DOS haben unterschieldiche "Werte" (je nachdem mit was du arbeitest).
ASCII UNIX:
ä => \344
ö => \366
ü => \374
Ä => \304
Ö => \326
Ü => \334
Bsp: printf("D\374r\374m"); = DürümASCII DOS:
ä => \204
ä => \224
ü => \201
Ä => \216
Ö => \231
Ü => \232
Bsp: printf("\216rmelkanal"); = ÄrmelkanalDie Werte sind jeweils in Oktal-Schreibweise. Kannst ohne Probleme auch die Hexwerte reinschreiben.
Korrigiert mich, falls ich mist erzählt hab :-). Bin neu in c, möchte trotzdem versuchen ein bisschen Hilfe zu leisten ;-).
Gruss