WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   ESC in VC++ (http://www.wcm.at/forum/showthread.php?t=119038)

Etienne 17.12.2003 14:08

ESC in VC++
 
Hallo!
würde gerne ESC sequenzen in mein Programm einbauen. Mein Compiler ist Visual C++. Ich Programmiere C.
mfg Etienne

Who-T 18.12.2003 00:20

öh
ich glaub da musst schon genauere angaben machen

escape sequenzen für strings, escape sequenzen für ein protokoll, etc?

Etienne 19.12.2003 17:17

Esc sequenz
 
ich meine die ECS sequenzen wie CLS(bildschirmlöschen)....
ich weiß nicht genau was du darunter verstehst.
mfg etienne

Who-T 20.12.2003 10:15

sorry, ich habs noch immer net verstanden

escape sequences sind normal werte, die anzeigen dass der nächste wert aufgrund bestimmter normen anders ist als er aussieht - um es mal so zusagen


bsp für eine esc sequenz:

willst du innerhalb eines strings ein " verwenden, musst du das mit einem \ escapen

sprich

printf ("ich sagte \"hallo wie gehts dir\"");

\" ist dann die escape sequenz für "

in vielen protokollen gibt es auch escape sequenzen, um vordefinierte werte benutzen zu können


was du mit cls jetzt meinst weiß ich net.
willst du cls in deinem programm aufrufen?

Etienne 20.12.2003 11:00

ESC
 
Ich lerne gerade C... Habe mir ein Buch gekauft (C für PC's).
In diesem sind ESC Sequenzen Sachen wie:
printf("\33[2J"); Das sollte Bildschirmlöschen sein,doch in VC++ erkennt er diese nicht. Ich würde deswegen gern wissen wie es geht...
Oder Wie man mit einem anderen Befehl einfach den Bildschirm löschen kann oder die Farbe der Console umstellen...


Der Befehl um den Bildschirm zulöschen ist eine ESC sequenz. Diese lautet printf("\33[2J");
Damit ich diesen Befehl nicht immer hinschreiben muss, erledige ich es über eine Define direktive:
#define CLS printf("\33[2J");

Diese Idee kommt nicht von mir sondern von meinen Buch... Also muss es gehen. :) Das Buch unterstützt VC++.

Es gibt auch eine ESC sequenz zum Ändern der Consolen Farbe...
danke mfg etienne

Who-T 20.12.2003 11:48

ah, jetzt versteh ich was du meinst

sorry, aber da bin ich der falsche, ich bin linux jünger und weiß die notwendigen esc sequenzen net

allerdings einen tipp kann ich dir geben

du willst die zeile
#define printf ("\33[2]"); CLS
nicht verwenden. das ist kein schöner stil.

#defines sollte man nur für konstanten verwenden

mach dir statt dessen eine funktion
Code:

void cls ( void )
{
  printf ("\33[2]");
}


was meinst du außerdem mit VC++ erkennt das nicht?
es lässt sich nicht kompilieren? dann hast du einen fehler an einer anderen stelle, der compiler überprüft den wert innerhalb der quotes zur compilezeit nicht. ob du dort \33[2] oder einen anderen string hast ist dem compiler egal.

oder bewirkts einfach nichts? in dem fall würd ich vermuten, dass der escape code falsch ist. das hat aber wiederum nix mit VC++ zu tun, weil ausgeführt wird auf der windows-eigenen console

Etienne 20.12.2003 13:55

Esc sequenz
 
Ich habe als erstes auch gedacht das ich mich vertipt habe, aus diesem Grund habe ich in mein Buch nachgeschaut. Ich habe sogar in meiner Not die CD vom Buch genommen und die ESC sequenz kopiert.
Danke für den Tip, werde das in Zunkunft machen. Eine Inline Funktion wäre am besten?
Ich meine mit dem dass VC++ es nicht versteht, dass er normal das hinschreibt... Er erkennt die Sequenz nicht, aber es lässt sich kompiliern..


mfg etienne


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag