amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > Cursorpositionierung in C [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

07.03.2006, 19:57 Uhr

Rudi
Posts: 835
Nutzer
Hi,

ich bin absoluter C-Anfänger und mache meine ersten Gehversuche.

Wie kann ich den Cursor an bestimmte Position setzen oder gibt es so etwas wie eine printf-Funktion, die den Cursor positionieren kann?

Also so etwas wie diese Fantasie-Funktion, die bei Zeile 10, Spalte2 "Hallo" ausgeben soll:

DruckeAnPosition(10,2,"Hallo");

Gruß... Rudi


--
A4000, CSPPC, 128MB RAM, OS3.9, GREX, Voodoo3, Terratec128i, X-Surf, Oktagon 2008

[ - Antworten - Zitieren - Direktlink - ]

07.03.2006, 20:39 Uhr

Kaesebroetchen
Posts: 643
Nutzer
@Rudi:
Das ist soweit ich weiss nicht im ANSI C festgelegt.
Unter Windows geht das mit gotoxy(x,y) <conio.h> und unter Linux sollte etwas in der <curses.h> zu finden sein.

Hier mal ein Link auf eine gute C Seite (allgemein, nicht Amiga spezifisch)

http://www.pronix.de/pronix-4.html
--
http://amidev.kilu.net/

[ - Antworten - Zitieren - Direktlink - ]

07.03.2006, 22:06 Uhr

thomas
Posts: 7717
Nutzer

printf ("x9b<zeile>;<spalte>HHallon");

<zeile> und <spalte> jeweils durch Zahlen ersetzen.

Steht alles im RKRM Devices -> Console Device -> Writing to the Console Device -> Control Sequences For Window Output.

Je nach Compiler und/oder um es übersichtlicher zu machen kann/muß man es auch so schreiben:

printf ("x9b" "<zeile>;<spalte>H" "Hallon");

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

07.03.2006, 22:11 Uhr

jolo
Posts: 110
Nutzer
@Rudi:

Das geht beim Amiga mittels CSI-Kodes (Command Sequence Introducer) - sollten in jedem guten AmigaDOS-Programmierhandbuch zu finden sein.

Gruß

[ - Antworten - Zitieren - Direktlink - ]

08.03.2006, 09:54 Uhr

Solar
Posts: 3680
Nutzer
@ Rudi:

Im Standard-C erfolgt die Ausgabe grundsätzlich stream-basiert. Das heißt, Du gibst eine Kette von Zeichen aus, Ende. Ein "Zurück" gibt es nicht, ebensowenig eine "Positionierung" bei x,y - es sei denn, Du schreibst sie Dir selbst.

code:
for ( int i = 0; i < zeile; ++i )
    puts( "" );
for ( int i = 0; i < spalte; ++i )
    putchar( " " );
printf( "Hallo" );


Da Standard-C auch keine Möglichkeit bietet, Zeichen / Zeile oder Zeilen / Seite abzufragen, sind die Möglichkeiten hier begrenzt.

Wenn Du für ein konkretes Betriebssystem schreibst, gibt es hier natürlich die bereits erwähnten Möglichkeiten - conio.h unter Windows, die ncurses-Bibliothek unter Linux/Unix, oder das erweiterte printf() aus thomas' Beispiel. All diese Methoden sind dann natürlich nicht mehr so ohne Weiteres portierbar.

[ - Antworten - Zitieren - Direktlink - ]

08.03.2006, 16:33 Uhr

Rudi
Posts: 835
Nutzer
Danke für Euere Tipps! Werde in nächster Zeit sicherlich öffter mal mit Anfängerfragen nerven ;)

Ich wollte den Code eigentlich erstmal systemunabhängig halten, denke aber das Amiga-spezifisch erstmal einfacher ist.

Gruß... Rudi



--
A4000, CSPPC, 128MB RAM, OS3.9, GREX, Voodoo3, Terratec128i, X-Surf, Oktagon 2008

[ - Antworten - Zitieren - Direktlink - ]

15.03.2006, 12:31 Uhr

Wishmaster
Posts: 140
Nutzer
@Rudi:

Eine weiterre Möglichkeit:
Schau dir mal NCurses an (GeekGadgets).
Das ist genau dafür gedacht.
--
Pegasos MorphOS

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > Cursorpositionierung in C [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.