Unicode Symbol in Konsole anzeigen
-
Hallo zusammen !
Habe hier http://www.unicode.org/charts/
mir paar Tabellen runter geladen und jetzt meine Frage.
Wie kann ich Unicode Symbole in Konsole anzeigen lassen ?
Einfach mit cout oder etc ausgeben funz nicht.
-
"funz nicht" ist keine Fehlerbeschreibung.
#include <iostream> // Windows #include <io.h> #include <fcntl.h> int main() { _setmode( _fileno( stdout ), _O_U16TEXT ); for( wchar_t ch = 0x03b1; ch <= 0x03c9; std::wcout.put( ch++ ) ); }
Funz unter Windows toll.
-
Morgen !
Wenn ich diese Code ausführe:#include <iostream> #include <string> #include <stdio.h> #include <io.h> // for _setmode() #include <fcntl.h> // for _O_U16TEXT using namespace std; int main() { _setmode( _fileno( stdout ), _O_U16TEXT ); wchar_t ch = 0x03b1; wcout << ch; }
bekommen ich folgende Fehlermeldungen:
_O_U16TEXT nicht deklariert
wcout nicht deklariert
Selbst wenn ich mit andere Unicode probiere:
http://www.unicode.org/charts/PDF/U2440.pdf
funz auch nicht.
-
Du compilierst mit mingw, gell? Dann musst halt rausfinden, welche defines die Header wollen um die Symbole zu definieren. In die Header schaun könnt helfen, vielleicht gibts auch irgendwo Dokumentation.
Plan B: Visual Studio.
-
VS kommt nicht in frage, bin mit Code::Blocks zufrieden
-
Also Plan A?
Auszug aus MinGWs fcntl.h:
#if (__MSVCRT_VERSION__ >= 0x0800) #define _O_WTEXT 0x10000 #define _O_U16TEXT 0x20000 #define _O_U8TEXT 0x40000 #endif
-
c2010 schrieb:
VS kommt nicht in frage, bin mit Code::Blocks zufrieden
Selber schuld, kein Mitleid *scnr*
-
Die Diskussionen könnts ihr euch sparen, habe in anderen Foren gelesen dass GNU Compiler _O_U16TEXT nicht kennt. Header fcntl.h ist für Visual C++ Compiler gedacht aber nicht für GNU. Werde mich weiter damit rum schlagen, danke für die Hilfe, wenn doch von euch einer die Lösung kennt, postet bitte.
-
Interessant, meiner kennt es, siehe oben.
-
tja der selber fehler:
||=== Unicode anzeigen, Debug ===|
....\C++ Projekte\Unicode anzeigen\main.cpp||In functionint main()':| ....\\Unicode anzeigen\\main.cpp|9|error:
_O_U16TEXT' was not declared in this scope|
.....\Unicode anzeigen\main.cpp|9|warning: unused variable '_O_U16TEXT'|
||=== Build finished: 1 errors, 1 warnings ===|Auszug aus der Header Datei fcntl.h:
/* NOTE: Text is the default even if the given _O_TEXT bit is not on. */ #define _O_TEXT 0x4000 /* CR-LF in file becomes LF in memory. */ #define _O_BINARY 0x8000 /* Input and output is not translated. */ #define _O_RAW _O_BINARY #if (__MSVCRT_VERSION__ >= 0x0800) #define _O_WTEXT 0x10000 #define _O_U16TEXT 0x20000 #define _O_U8TEXT 0x40000 #endif
EDIT//
Lösung:#include <iostream> using namespace std; int main() { char a = 178; cout << endl; cout << a; }
Thema erledigt, danke für die Hilfe !