C++ Ellipse im Dosfenster zeichnen

The Motrix

Grünschnabel
Hallo ich habe folgendes problem, wieso funktioniert dieser QUelltext nicht?
vielleicht könnt ihr mir helfen ^^

Code:
#include <iostream>
#include <cmath>
#include <string>
using namespace std;

#define CLS (cout <<"\033[2J")
#define LOCATE(z,s) (cout <<"\033["<<(z)<<';'<<(s)<<'H')
#define DOT(x,y) (LOCATE(y,x)<<'*')

#define PI 3.1416
#define Mx 40
#define My 12
#define A 25
#define B 10

int main()
{
	int x, y;
	CLS;

	for (double t = 0.0; t<=PI/2; t +=0.03)
	{
		x = (int) (A*cos(t) +0.5);
		y = (int) (B*sin(t) +0.5);
		DOT(x+Mx, y+My);
		DOT(x+Mx, -y+My);
		DOT(-x+Mx, y+My);
		DOT(-x+Mx, -y+My);

	}
	LOCATE(24,0);
	return 0;
}
 
deine defines sehen ziemlich chaotisch aus.
z.B CLS: gibt auf dem bildschirm ?[2J aus. Was soll das sein?
 
Guck dir mal an wie CLS definiert ist.

Code:
#define CLS (cout <<"\033[2J")

Soll vermutlich den Bildschirm löschen, aber die Escapesequenz \abc (wobei a, b, c für irgendwelche Ziffern stehen) gibt halt das ASCII-Zeichen mit der Nummer abc aus (also scheinbar diesen Pfeil). Mehr macht das nicht. Naja und danach kommt halt noch der Rest der Zeichenfolge: [2J
LOCATE scheint das im übrigen auch zu machen.
 
Sieht sehr nach ANSI-Escape-Sequenzen aus. Warum er Oktal verwendet ist seine Sache, aber ANSI-Sequenzen laufen in heutigen Konsolenanwendung nicht mehr (glaube ich zu wissen, ich lasse mich aber gern eines Besseren belehren).

Um den Cursor zu plazieren muss man wohl oder übel auf Betriebssystem-spezifische Befehle ausweichen (z. Bsp.: Windows: SetConsoleCursorPosition).
 
Zurück