Forum: PC-Programmierung Win32-Konsole


von Patrick D. (oldbug) Benutzerseite


Lesenswert?

Guten Morgen!

Weis zufällig jemand, wie/ob ich die ANSI-Steuerzeichen in einer
Win32-Konsole per simplen 'printf' nutzen kann?

Optimistisch wie ich war habe ich folgendes probiert:
1
#include <stdio.h>
2
3
int
4
main(void)
5
{
6
    /*
7
     * Clear screen and go to home position
8
     */
9
    printf("\x1[2J\x1b[H");
10
    return 0;
11
}

...das kommt aber völlig "uninterpretiert" auf dem Bildschirm an.

Hat da jemand eine Idee?
Danke...

von Patrick D. (oldbug) Benutzerseite


Lesenswert?

Hups, das printf sieht natürlich so aus:
1
printf("\x1b[2J\x1b[H");

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Gar nicht. Ein Äquivalent zum "ansi.sys" aus der DOS-Zeit gibt es
unter Windows nicht.

Zur Cursorsteuerung und anderen Dingen solltest Du die in der Win32-API
vorhandenen Funktionen verwenden; hier zwei Einstiegspunkte in die
zugehörige Dokumentation:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/high_level_console_i_o.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/low_level_console_i_o.asp

Mir ist, um ehrlich zu sein, auch schleierhaft, warum dieses Fossil aus
der IT-Steinzeit, in der noch echte Terminals an seriellen
Schnittstellen hingen, immer noch am leben ist ... in der *nix-Ecke
gibt es ja noch schlimmere Varianten davon (termcap), die IMHO auch
völlig entbehrlich sind.
Naja.

Wie auch immer; viel Erfolg!

von René König (Gast)


Lesenswert?

Und wenn Du Dich nicht selber mit den API-Funktionen herumschlagen
willst, fügst Du einfach dieses C-File Deinem Projekt hinzu:
http://www.tbkoenig.de/files/conioex/CONIOEX.ZIP

von Patrick D. (oldbug) Benutzerseite


Lesenswert?

Rufus:

Danke, die MSDN habe ich dann auch kurz darauf gefunden, aber was da
für ein simples Bildschirmlöschen gemacht wird, finde ich ein wenig arg
übertrieben. Was solls... :)

Warum ANSI-Sequenzen? Nun, ich möchte meine Konsolapplikation einfach
ein wenig übersichtlicher machen. Und ich möchte bei der Konsole
bleiben, denn die Funktionalität steht im Vordergrund, nicht das
Entwerfen von irgendwelchen Fensterchen :-)

René:

Danke, werds mir mal anschauen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Mir ist schon klar, warum Du eine Möglichkeit zur Ausgabesteuerung
suchst, das war nicht der Punkt meiner (auch gar nicht an Dich
gerichteten) Kritik.

Renés Code ist ein Wrapper um die zugegebenermaßen arg umständliche
Konsolen-I/O-API von Microsoft.
Praktisch. Sowas sollte MS oder auch andere Compilerhersteller ihren
Compilern von vornherein mitgeben.

Auch von mir ein Dank an René.

von Patrick D. (oldbug) Benutzerseite


Lesenswert?

Ok, Mißverständnis beseitigt ;)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.