Umlaute in der Konsole
-
Hallo
ich möchte Umlaute wie ü, ö, ä auch in der Konsole ausgeben!cout<<"ü, ö, ä"<<endl;
Dies gibt aber irgendwelche Sonderzeichen aus!
Mein Vorschlag ein eingener german Header:
//Präprozessor-Direktiven habe ich ausgelassen const char oe=916; const char ae=900; const char ue=897; const char OE=921; const char AE=910; const char UE=922;
Und im Programm:
#include <german.h> cout<<ue<<", "<<oe<<<", "<<ae<<", "<<endl;
Funktioniert aber der Compiler spuckt Warnungen aus, warum
-
Was gibt's denn für Warnungen?
Nur dass du Versuchst Werte >> 127 in einen char zu zwängen?
btw in deinem untigen Code istn < zu viel
-
Fehlermeldung:
"warning: overflow in implicit constant conversion"
-
Was sind das eigentlich für Zeichencodes? Aber davon abgesehen: Probier es mit wchar_t und wcout. Ideal wäre auch einfach das korrekte deutsche Locale (siehe Header <locale>). Das macht aber nur unter Linux wirklich Spaß.
-
Wenn du einen normalen Editor hast, dann speichere mal in verschiedenen Zeichensätzen, probier ein bisschen. Bei mir hats mit Unicode geklappt.
Wenn du VC++ hast, dann wird automatisch HEX-Code aus deinen Umlauten gemacht
-> "ü" ="x897" oder so ähnlich
ansonsten würde ich empfehlen den zu benutzen.
-
tuxer schrieb:
Mein Vorschlag ein eingener german Header:
schlechter Vorschlag.
char nimmt maximal den Wert 127 an(unsigned char 255). Die Zahl der sicher unterstützen ist allerdings noch geringer (irgendwas um 80 rum). Char ist nur für einfache consolenaushabe die überall funktionieren soll. Darum werden keine Sprachspezifischen Zeichen unterstützt.
Willst du mehr, nimm entweder direkt unicode libs, oder vertrau auf die wide strings (wchar, wstring). Allerdings ist das oftmals nicht wirklich lustig(einige standard bibliotheken haben dafür keine implementation).
-
otze schrieb:
Die Zahl der sicher unterstützen ist allerdings noch geringer (irgendwas um 80 rum). Char ist nur für einfache consolenaushabe die überall funktionieren soll. Darum werden keine Sprachspezifischen Zeichen unterstützt.
Was?
@OP:
Wenn der Editor und die Konsole den gleichen (1-byte) Zeichensatz verwenden (z.B. Latin1), ist es kein Problem direkt Umlaute im Quelltext zu verwenden. Sogar UTF-8 ist eingeschränkt möglich. Die meisten Editoren kann man diesbezüglich einstellen.