© auf konsole unter windows ausgeben [was: ©???]
-
Der Link zeigt doch eindeutig, dass es das eben nicht ist. Erst im ANSI-Zeichensatz ist das Copyright-Zeichen enthalten. Und diese zweiten 128 Zeichen ändern sich je nach eingestellter Codepage der Konsole.
Aber Codepages sind heutzutage bereits megaout, verwende lieber wcout und Unicode.
Wenn dich die ganzen Zeichensätze noch verwirren: Im Magazin findest du einen ausgezeichneten Artikel über das Thema von Jochen Kalmbach
MfG SideWinder
-
wcout << L"
"; geht net, wieder nur das (R)
-
Okay, das Problem liegt in der I/O-Stream-Library von C++, mal wieder einen Schwachpunkt gefunden...
Mit der WinAPI funktionierts wunderbar:
// Funktioniert: TCHAR copy = 169; DWORD charsWritten; WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), ©, 1, &charsWritten, 0); // Funktioniert leider nicht: wcout << copy << endl;
MfG SideWinder
-
Es hat was mit der Implementierung und nicht der C++ Stdlib zu tun.
-
Gibts da eine Bugmeldung bei Dinkumware?
MfG SideWinder
-
Es hat nichts mit nem Bug in der Dinkumware zu tun. Gib mal in die Windows-Konsole bei gedrückter "Alt"-Taste auf dem Ziffernblock 169 ein. Dann weißt du wo die Implementierung schuld ist.
-
Dort wird aber eventuell auch noch ANSI inkl. Codepage gefahren.
MfG SideWinder
-
Der Compiler hat nichts mit der Codepage zu tun.
-
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.
-
Leute, warum labert Ihr hier eigentlich so viel rum, statt ihm das naheliegenste vorzuschlagen?
Das Copyright-Zeichen gehört nicht zu den ersten 128 Zeichen des ASCII-Codes, also kannst Du die bei Konsolenanwendungen nicht direkt in den Quellcode eingeben. Mach es lieber so:cout<<static_cast<unsigned char> (184);
bzw.
const unsigned char copyright=184; cout<<copyright;
Eine etwas unkonventionelle Alternative:
Schreibe den Code (bzw. diese eine Codezeile) mit einem DOS-Editor, wie Edit. Da kannst Du dann das Zeichen direkt benutzen. Das hängt wohl, wenn ich mich nicht irre, damit zusammen, daß Konsolenanwendungen den DOS-Zeichensatz benutzen, während die Texteditoren natürlich grafische Windowsprogramme sind und somit den Windows-Zeichensatz nehmen.
Deshalb kannst Du für ein Fensterprogramm die Sonderzeichen direkt in den Code eintippen, aber bei Konsolenanwendungen eben nicht. Dafür mußt Du dann entweder auf den Zahlenwert zurückgreifen oder eben einen DOS-Editor nehmen.