Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bildschrim löschen

10 views
Skip to first unread message

Martin Köhler

unread,
Jan 5, 2002, 3:47:19 PM1/5/02
to
Hallo Leute

ich bin Newbe und möchte wissen wie man in C der Bildschirm löscht (unter
Linux), in Basic ist das CLS

Danke im Vorraus


--
Tschüss Martin Köhler
Internet :
http://www.jg-pleissa.de.vu/
http://come.to/pleissa-soft/

E-Mail :
software...@web.de
martin....@web.de
jungegemei...@web.de


David Owczarek

unread,
Jan 5, 2002, 4:03:12 PM1/5/02
to

Martin Köhler schrieb in Nachricht ...

>Hallo Leute
>
>ich bin Newbe und möchte wissen wie man in C der Bildschirm löscht (unter
>Linux), in Basic ist das CLS


mit dieser Textausgabe kannst du den Bildschirm Löschen

cout << "\033[2J"; //\033 heist hier esc Zeichen

Falls du noch mehr machen willst wie Farben verändern dann schau doch mal
unter

http//:www.schellong.de/htm/ansi.htm


Damit müsste alles klar sein

Klaus von der Heyde

unread,
Jan 5, 2002, 4:40:06 PM1/5/02
to
"Martin Köhler" wrote:

> ich bin Newbe und möchte wissen wie man in C der Bildschirm löscht (unter
> Linux), in Basic ist das CLS

Ich nehme mal an, es geht um textausgabe...

Am einfachsten - und zudem halbwegs portabel auf andere
betriebssysteme - ist es, wenn man "curses" bzw. "ncurses" verwendet:
eine library fuer text-terminal-ausgabe.

Dazu die manpages ansehen: "ncurses" und insbesondere "curs_clear".

Wenn das programm definitiv nur auf der Linux-konsole oder im xterm
laufen soll, kann man auch mit "printf()" die entsprechenden
steuerzeichen ausgeben, welche das sind, wurde schon in einem anderen
posting geschrieben. Zumindest auf meinem system gibt es die manpage
"console_codes", in der alles notwendige drinsteht.

Die positionierung von text geht auch, in beiden varianten ... und
noch mehr.

Viel erfolg beim ausprobieren!
Klaus

--
Klaus von der Heyde -- he...@informatik.uni-bonn.de

Andreas Baier

unread,
Jan 6, 2002, 1:37:32 PM1/6/02
to
> David Owczarek wrote:
>> Martin Köhler wrote:

>>ich bin Newbe und möchte wissen wie man in C der Bildschirm löscht
>>(unter Linux), in Basic ist das CLS>

> mit dieser Textausgabe kannst du den Bildschirm Löschen cout <<
> "\033[2J"; //\033 heist hier esc Zeichen

cout ist AFAIK _kein_ C. Lies bitte die Frage genau durch.

Gruß Andreas

Walter Haslbeck

unread,
Jan 7, 2002, 1:23:08 PM1/7/02
to

Ausserdem löscht man den Bildschirm nicht damit, irgendwelche
hart-codierten ESC-Sequenzen auszugeben. Da könnte man ja
gleich in C64-Zeitalter zurückfallen und den Bildschirmspeicher
mit poke löschen.

Wie es richtig gemacht wird, sieht man ein Posting weiter
unten (man curses)

Walter

Klaus von der Heyde

unread,
Jan 7, 2002, 3:25:56 PM1/7/02
to
Walter Haslbeck wrote:

> Ausserdem löscht man den Bildschirm nicht damit, irgendwelche
> hart-codierten ESC-Sequenzen auszugeben. Da könnte man ja
> gleich in C64-Zeitalter zurückfallen und den Bildschirmspeicher
> mit poke löschen.

Es mag faelle geben, in denen es nicht anders geht. Hatte ich schon,
sowas. Zum richtig programmieren lernen taugt das natuerlich nicht.
Curses ist auf den 1. blick zwar nicht ganz einfach und wirkt etwas
ueberladen (feature-rich :), aber, es lohnt sich.


>
> Wie es richtig gemacht wird, sieht man ein Posting weiter
> unten (man curses)

Gibt es eigentlich auch eine portierung von Borlands "crt" fuer
unix-systeme? Fuer die portierung noch irgendwo rumgammelnder
DOS-programme waere das ja ideal.

Erich Frühstück

unread,
Jan 8, 2002, 12:35:57 AM1/8/02
to
In article <3C3A0453...@uni-bonn.de>, Klaus von der Heyde
<uzs...@uni-bonn.de> wrote:
> Walter Haslbeck wrote:
>
>> Ausserdem l=F6scht man den Bildschirm nicht damit, irgendwelche
>> hart-codierten ESC-Sequenzen auszugeben. Da k=F6nnte man ja gleich in
>> C64-Zeitalter zur=FCckfallen und den Bildschirmspeicher mit poke
>> l=F6schen.

>
> Es mag faelle geben, in denen es nicht anders geht. Hatte ich schon,
> sowas. Zum richtig programmieren lernen taugt das natuerlich nicht.
> Curses ist auf den 1. blick zwar nicht ganz einfach und wirkt etwas
> ueberladen (feature-rich :), aber, es lohnt sich.

Und wenn man schon nicht direkt Curses verwenden will, dann
sollte man lieber Systemaufrufe mit tput anstelle von hart-codierten
ESC-Sequenzen verwenden:

system("tput clear"); /* Löscht Bildschirm */
system("tput cup 5 20"); /* Positioniert Cursor in Zeile 5, Spalte 20 */

Grüße
Erich
--
EFEU is great (development tools, C libraries, interpreter language, ...).
Get the open source from http://efeu.cybertec.at now.

Walter Haslbeck

unread,
Jan 8, 2002, 7:59:57 AM1/8/02
to
Klaus von der Heyde <uzs...@uni-bonn.de> wrote:

> Gibt es eigentlich auch eine portierung von Borlands "crt" fuer
> unix-systeme? Fuer die portierung noch irgendwo rumgammelnder
> DOS-programme waere das ja ideal.

Meinst du die #include <conio.h> Teile? Ich hab zwar noch nie
etwas damit zu tun gehabt, aber ich glaube mich zu errinnern,
das sowas mal auf freshmeat.net angekündigt wurde.

Walter

Klaus von der Heyde

unread,
Jan 8, 2002, 7:40:54 AM1/8/02
to
"Erich Frühstück" schrieb:

> system("tput clear"); /* Löscht Bildschirm */
> system("tput cup 5 20"); /* Positioniert Cursor in Zeile 5, Spalte 20 */

Scheint mir nicht besonders effizient zu sein :(

Klaus

Felix von Leitner

unread,
Jan 8, 2002, 10:45:01 AM1/8/02
to
Thus spake Erich Frühstück (e...@synthesis.co.at):

> Und wenn man schon nicht direkt Curses verwenden will, dann
> sollte man lieber Systemaufrufe mit tput anstelle von hart-codierten
> ESC-Sequenzen verwenden:

> system("tput clear"); /* Löscht Bildschirm */
> system("tput cup 5 20"); /* Positioniert Cursor in Zeile 5, Spalte 20 */

Erich, was hast du in deinen 20 Jahren Unix-Erfahrung eigentlich
gemacht, daß du weder globbing noch termcap/terminfo kennst?

man tgetent
man termcap, man terminfo

David Owczarek

unread,
Jan 8, 2002, 11:30:10 AM1/8/02
to

Walter Haslbeck schrieb in Nachricht ...

>Andreas Baier wrote:
>>> David Owczarek wrote:
>>>> Martin Köhler wrote:
>
>>>>ich bin Newbe und möchte wissen wie man in C der Bildschirm löscht
>>>>(unter Linux), in Basic ist das CLS>
>
>>> mit dieser Textausgabe kannst du den Bildschirm Löschen cout <<
>>> "\033[2J"; //\033 heist hier esc Zeichen
>
>> cout ist AFAIK _kein_ C. Lies bitte die Frage genau durch.


schon gut hab mich ein bisschen vertan

>
>Ausserdem löscht man den Bildschirm nicht damit, irgendwelche
>hart-codierten ESC-Sequenzen auszugeben. Da könnte man ja
>gleich in C64-Zeitalter zurückfallen und den Bildschirmspeicher
>mit poke löschen.
>
>Wie es richtig gemacht wird, sieht man ein Posting weiter
>unten (man curses)

??????????macht curses nicht das gleiche?????????
oder gehe ich von einer falschen annahme aus

wenn es das gleiche macht dann spricht doch eigentlichts nichts dagegen die
ASCII Zeichen direckt auszugeben, oder???????

>
>Walter


Walter Haslbeck

unread,
Jan 8, 2002, 1:47:29 PM1/8/02
to
David Owczarek <n...@uni.de> wrote:

> ??????????macht curses nicht das gleiche?????????
> oder gehe ich von einer falschen annahme aus

> wenn es das gleiche macht dann spricht doch eigentlichts nichts dagegen die
> ASCII Zeichen direckt auszugeben, oder???????

Curses prueft die Umgebungsvariable "TERM", damit es erfaehrt an welchen
Terminaltyp du sitzt. Dann schaut es in der terminfo-Datenbank nach,
wie bei diesem Terminaltyp der Bildschirm geloescht wird.

Wenn du eine ESC-Sequenz fest in dein Programm eincodierst, läuft das
evtl. bei deinem Terminal/Terminalemulation, aber nicht auf allen
Terminals. Sowas ist unschoen, damit gewinnt man keine Freunde.

BTW: deine Fragezeichentaste prellt.

Walter

Martin Köhler

unread,
Jan 8, 2002, 1:42:13 PM1/8/02
to
Ist egal, dan binde ich halt noch die C++ Header ein !!
Danke !!

E-Mail :
software...@web.de
martin....@web.de
jungegemei...@web.de
"Andreas Baier" <bait...@gmx.net> schrieb im Newsbeitrag
news:ch5a1a...@baitronic.local...

Erich Frühstück

unread,
Jan 8, 2002, 11:14:45 PM1/8/02
to
In article <3c3b...@fefe.de>, Felix von Leitner <usenet-...@fefe.de>
wrote:

Ich kenne curses/termcap/terminfo schon lange. Meine Antwort war
für: Was mach ich, wenn ich curses/terminfo *nicht* verwenden will.
Da ist die Verwendung von tput besser als hart-codierte
Escape-Sequenzen. Bitte den Zusammenhang beachten!

PS: tput ist für die Shell-Programmierung geeignet.

Herbert Martin Dietze

unread,
Jan 9, 2002, 5:20:34 AM1/9/02
to
"Martin Köhler" <rpk-...@nexgo.de> wrote:

> Ist egal, dan binde ich halt noch die C++ Header ein !!
> Danke !!

Jau, das hilft bestimmt. Versuch's dann bitte gleich lieber
mit einem C++ Compiler. Bist Du sicher, dass Du weisst, was
Du willst?

[TOFU entsorgt]

Gruss,

Herbert

--
Chinese is a lousy language for scrabble
-- Neal Stephenson
-=-=- -=-=-=-=-
Dipl.Ing. Martin "Herbert" Dietze -=-=- The University of Buckingham -=-=-

0 new messages