amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Programmierung > Cursorpositionierung in C [ - Search - New posts - Register - Login - ]

-1- [ - Post reply - ]

2006-03-07, 19:57 h

Rudi
Posts: 835
User
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

[ - Answer - Quote - Direct link - ]

2006-03-07, 20:39 h

Kaesebroetchen
Posts: 643
User
@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/

[ - Answer - Quote - Direct link - ]

2006-03-07, 22:06 h

thomas
Posts: 7718
User

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/

[ - Answer - Quote - Direct link - ]

2006-03-07, 22:11 h

jolo
Posts: 110
User
@Rudi:

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

Gruß

[ - Answer - Quote - Direct link - ]

2006-03-08, 09:54 h

Solar
Posts: 3680
User
@ 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.

[ - Answer - Quote - Direct link - ]

2006-03-08, 16:33 h

Rudi
Posts: 835
User
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

[ - Answer - Quote - Direct link - ]

2006-03-15, 12:31 h

Wishmaster
Posts: 140
User
@Rudi:

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

[ - Answer - Quote - Direct link - ]


-1- [ - Post reply - ]


amiga-news.de Forum > Programmierung > Cursorpositionierung in C [ - Search - New posts - Register - Login - ]


.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved.
.