Improved Console 4.0: gotoxy() nicht mit Variablen?
-
Hallo ich habe eben gerade die Improved Console 4.0 entdeckt und ein kleines Problem damit.
Also ich habe ein C++ Projekt:
#include <iostream> #include <conio.h> #include "ic.hpp" using namespace ic; using namespace ic::shorties; using namespace std; int main () { int x = con.getMaxWndSizeX() / 2; int y = con.getMaxWndSizeY() / 2; gotoxy(x,y); cout << '*'; system("pause"); return 0; }
wie man sieht, ich möchte ein * in der Mitte haben, es geht aber nicht, der Stern ist ganz oben links.
Wenn ich nun aber in die Variablen feste Zahlen eingebe, dann ist der Stern an der Position x, y.
Muss ich das verstehen?
-
Welche Werte stehen denn in x und y drin? Das wäre doch die interessante Frage...
-
Vielleicht solltest du auch die Methoden der IC verwenden
(das heißt:
con.setCurPos(x,y);
).(und getMaxWndSizeX() liefert die Größe des maximal möglichen Konsolenfensters - du brauchst eher getWndSizeX())
-
@ Marc++us
Ja das ist es doch, als Rückgabe gibt es Integers, die Breite und Höhe des Fensters
@CStoll
Danke es geht.
Aber wozu wurden die anderen Funktionen ein gebaut wenn die sowieso nicht funktionieren?
-
Was meinst du mit eingebaut? Du wirfst die Improved Console und die "klassische" Konsole (conio - gotoxy()) durcheinander.
-
Natürlich funktioniert gotoxy(), die kommt auch aus der IC, da der VC sie so gar nicht mehr mitbringt. Du kannst sie natürlich einsetzen. Korrekterweise hast du den Namespace "shorties" ja miteingebunden!
Und natürlich funktioniert es auch mit Variablen. Nur liefert getMaxWndSizeX() nicht die derzeitige Fenstergröße sondern die MAXIMALE Fenstergröße! Die maximale Fenstergröße / 2 wird immer noch größer gewesen sein als deine derzeitige Fenstergröße -> gotoxy() setzt den Cursor nicht.
getWndSizeX() liefert die AKTUELLE Fenstergröße, diese durch 2 ergibt die Mitte des Fensters. Folglich:
int x = con.getWndSizeX() / 2; int y = con.getWndSizeY() / 2; gotoxy(x,y); cout << '*';
MfG SideWinder