wie bekomme ich ä, ü , ö und ß in Stringlisten ein??
-
Im Falle der Windows-Konsole hast du da sehr schlechte Karten.
Das wird nämlich relativ schnell zu einer richtigen Qual. Die Windows-Konsole ist sozusagen ein Relikt aus der Vergangenheit und verhält sich auch so. Du musst schon einiges in Bewerbung setzen, damit du damit vernünftig arbeite kannst. Doch der Aufwand lohnt sich meistens nicht. Stattdessen ist es sinnvoller zu überdenken, ob man die Umlaute tatsächlich braucht bzw. wie man sie vermeiden kann. Auch ein GUI Framework (mit Unicode) wäre evtl. eine Möglichkeit.
-
Zwei Zeilen extra Code für die Unterstützung von Umlauten empfinde ich nicht als allzu qualvoll:
setlocale ( LC_ALL, "German" ); system ( "chcp 1252" ); // do your umlauts input/output stuff :) puts("äöüß"); fgets(buf, ...
-
Big Brother schrieb:
Zwei Zeilen extra Code für die Unterstützung von Umlauten empfinde ich nicht als allzu qualvoll:
setlocale ( LC_ALL, "German" ); system ( "chcp 1252" ); // do your umlauts input/output stuff :) puts("äöüß"); fgets(buf, ...
Muss man nicht ndoch zusätzlich die Schriftart der Konsole ändern?
-
Ist die aktuelle Schriftart Lucida Console dann nein, sonst ja.
Joooooo!
-
War da nicht was mit "CharToOem(...)" oder "OemToChar(...)"
Sorry ich weiss es nicht genau, schau halt mal nach.
-
system ( "chcp 1252" );
puts("äöüß");Ägypten?
Das soll laufen?
Der Prozess,welcher die Codepage ändert,ist doch längst beendet bei Aufruf von puts.
-
Big Brother schrieb:
setlocale ( LC_ALL, "German" ); system ( "chcp 1252" ); // do your umlauts input/output stuff :) puts("äöüß"); fgets(buf, ...
es funktioniert nur wenn ich den system() aufruf weglasse. Mit dem Systemaufruf ist wieder alles wie vorher, und es wird irgendetwas anderes ausgegeben.
Edit:
hab den Satz mit der Schriftart ändern übersehen. Ich hab die Schriftart jetzt geändert und siehe da es funktioniert.kann es sein das wenn ich die locale auf german stelle, automatisch die codepage 1252 verwendet wird, sonst würde es ja wie oben beschrieben ohne system() nicht funkionieren
-
Wutz schrieb:
Ägypten?
Rembrand?
Wutz schrieb:
Das soll laufen?
Ägypten?
Wutz schrieb:
Der Prozess,welcher die Codepage ändert,ist doch längst beendet bei Aufruf von puts.
Na, was für ein Glück!
Da soll ja auch kein zweiter Prozess nebenherlaufen, wir wollen doch Ressourcen schonen. Es soll lediglich die Codepage vor puts geändert werden. Nach einem puts ändert sich die eingestellte Codepage nicht selbständig. Das wäre ja ganz schön doof, ne, müsste man doch sonst vor jeder weiteren Ausgabe einen Systemaufruf machen.neo47 schrieb:
kann es sein das wenn ich die locale auf german stelle, automatisch die codepage 1252 verwendet wird, sonst würde es ja wie oben beschrieben ohne system() nicht funkionieren
Standardeinstellung ist Codepage 850. Die aktuelle Einstellung kannst du dir z.B. mit
system ( "chcp" ); anzeigen lassen (Oder eine Konsolenfunktion aus einer Bibliothek deines vertrauens benutzen).
-
Wollt ihr das nicht in den Windows-Foren besprechen?
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum ANSI 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.