PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C]: Wie kann ich in einem Konsolenprogramm die Cursorposition ändern?


mf_2
2008-01-10, 19:19:12
Hallo,

Ich sitze gerade an einem C Programm und möchte in meiner Konsolenanwendung zu einer bestimmten Position springen.
gotoxy() klappt nicht, da kommt beim Kompilieren im Visual Studio 2005 der Fehler 'unknown identifier'.
Kennt ihr da eine standardkonforme Alternative?

Gruß,
mf_2

Trap
2008-01-10, 19:33:20
Der C Standard gibt nichts vor was das könnte, das muss man platformspezifisch lösen.

Unter Windows wär http://msdn2.microsoft.com/en-us/library/ms682073(VS.85).aspx das passende.

hadez16
2008-01-10, 21:42:58
google spuckte aus, dass gotoxy borland-spezifisch ist dort evtl. in der conio.h enthalten sei

ansonsten musst du eine eigene funktion definieren


#include <windows.h>

void gotoxy(int xpos, int ypos)
{
COORD scrn;
HANDLE hOuput = GetStdHandle(STD_OUTPUT_HANDLE);
scrn.X = xpos; scrn.Y = ypos;
SetConsoleCursorPosition(hOuput,scrn);
}


ob das jetzt aber nur mit C++ geht....keine ahnung

LIVI@HOME
2008-01-10, 21:43:58
Vielleicht mit ASCII Steuercodes
Schreibe ein Function die den Coursor erst auf HOME setzt und dann mit LEFT und DOWN die Position anspringt? Weiß aber nicht ob das unter DOS funktioniert... ausprobieren :)

* <CRSR DOWN> (Cursor unten) entspricht den ASCII-Code 17
* <CRSR RIGHT> (Cursor rechts) entspricht den ASCII-Code 29
* <CRSR UP> (Cursor oben) entspricht den ASCII-Code 145
* <CRSR LEFT> (Cursor links) entspricht den ASCII-Code 157
* <HOME> (Cursor auf Position links, oben) entspricht den ASCII-Code 19
* <CLR HOME> (Bildschirm löschen) entspricht den ASCII-Code 147

mf_2
2008-01-10, 22:53:37
Also die ASCII Codes scheinen nicht zu stimmen, wenn ich mir die in der MSDN ansehe, dann haben die Codes da andere Entsprechungen und google sagt auch, dass die Pfeiltasten eigentlich keine ASCII Codes besitzen, aber man kann sie abfragen indem man auf zwei hintereinander folgende Codes prüft, einmal der Code '0' und dann ein tastenspezifischer Code, z.B. 78 für die 'Pfeil oben' Taste. Dann werde ich mal versuchen, mir da selbst was zu definieren wie handez16 es vorgeschlagen hat.