Zwei Konsolebuffer
-
Danke hat mir sehr geholfen
-
Entschuldigt bitte den Doppelpost, da ich Gast bin kann ich leider nich editieren.
Leider klappt die Ausgabe von ASCII Sonderzeichen irgendwie nichtCHAR_INFO buf[80*25];
// weder
buf[i].Char.AsciiChar = static_cast<char>(177);
// noch
buf[i].Char.AsciiChar = static_cast<char>(177);
-
wieso nicht?
wie lautet die fehlermeldung ?bei mir funktioniert das:
buf[0].Char.AsciiChar = 177; cout << buf[0].Char.AsciiChar;
-
Also erstma oben ich meinte natürlich weder .AsciiChar noch .UnicodeChar klappt.
Zur Compilezeit gab's keine Fehler, allerdings gibt er immer ein "?" aus. Auch ohne den typecast (also = 177 direkt) klappt es nicht.Ich kenn lediglich über .UnicodeChar = 'a' o. Ä. Sachen ausgeben.
-
versteh ich nicht, bei mir geht das, dann kommt dieses krusselzeichen, das gepunktete rechteck.
dein fehler muss wo anders liegen.
probier mal das:
putchar(177);
oder das:
printf("%c", 177 );
was passiert dann ?
-
Danke für deine Antwort.
Beides mal die korrekte Ausgabe, also das gepunktete Rechteck. Als IDE/Compiler nutze ich Microsoft Visual Studio 2008.
Hier mal mein kompletter Testcode:HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE); CHAR_INFO ausgabe[80*25]; COORD size = {80, 25}; COORD origin = {0, 0}; SMALL_RECT r = {0, 0, 80-1, 25-1}; for(int i = 0; i < 80 * 25; i++) { ausgabe[i].Char.AsciiChar = 177; ausgabe[i].Attributes = 0 | FOREGROUND_GREEN; } WriteConsoleOutput(console, ausgabe, size, origin, &r); system("pause > nul");
-
silentguard schrieb:
HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE); CHAR_INFO ausgabe[80*25]; COORD size = {80, 25}; COORD origin = {0, 0}; SMALL_RECT r = {0, 0, 80-1, 25-1}; for(int i = 0; i < 80 * 25; i++) { ausgabe[i].Char.AsciiChar = 177; ausgabe[i].Attributes = 0 | FOREGROUND_GREEN; } WriteConsoleOutput(console, ausgabe, size, origin, &r); system("pause > nul");
Ok, funzt
Für
ausgabe[i].Attributes = 0 | FOREGROUND_GREEN;
kannst du auch
ausgabe[i].AttributesFOREGROUND_GREEN;
schreiben
-
Ich push ungern meine Theards, aber hat wirklich keiner eine Ahnung wieso die Ausgabe von AsciiZeichen nicht funktioniert? Ich häng ziemlich an diesem Problem. leider..
Sorry und schonma vielen Dank
-
silentguard schrieb:
Ich push ungern meine Theards, aber hat wirklich keiner eine Ahnung wieso die Ausgabe von AsciiZeichen nicht funktioniert? Ich häng ziemlich an diesem Problem. leider..
Sorry und schonma vielen DankKapier ich nicht, bei mir laufen alle hier vorgestellten Versionen.
Hast du auch windows.h inkludiert ?
-
Jap selbstverständlich, lässt sich auch ohne Probleme kompilieren, lediglich wird das gewünschte Zeichen nicht ausgegeben. Welchen Compiler nutzt du?
-
Visual Studio
-
Also ich hab rausgefunden an was es lag. In den Projekteinstellung war als Zeichenstz Unicode gewählt, ich hab dies geändert und nun funst es!