Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » GNU/Linux » clrscr ()

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
26.02.2003, 07:21 Uhr
~Daniel666
Gast


Hallo,

dies ist keine Frage, sondern vielmehr will ich eine Möglichkeit zeigen den Befehl "clrscr ()", den es unter Linux nicht gibt, zu implementieren.
Ich weiss, dass ein Artikel zu diesem Thema bereits existiert, aber es geht auch viel einfacher:

printf("%c%c%c%c%c%c",27,'[','H',27,'[','J' );

Warum das funktioniert, weiss ich allerdings nicht...

Gruss Daniel666
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.02.2003, 07:53 Uhr
virtual
Sexiest Bit alive
(Operator)


Dein Code funktioniert auf ganz vielen Termninals, leider nicht auf allen. Es handelt sich im sog. ANSI Escape Sequencen. Letztlich macht die Lösung in der FAQ auch nichts anderes, als diesen og String zu senden, jedoch auf portable Art: Wnn das Terminal die Sequenz nicht unterstützt, wird eben eine andere genommen. Übrigens Kannst Du das oben auch Kürzer schreiben zu:

C++:
printf("\x1b[H\x1b[J");


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.04.2003, 17:39 Uhr
typecast
aka loddab
(Operator)


Wie wärs mit

Code:
#include <iostream>
...
system("clear");
...



Mfg loddab
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.04.2003, 12:40 Uhr
Pablo
Supertux
(Operator)



Zitat:
loddab postete
Wie wärs mit

Code:
#include <iostream>
...
system("clear");
...



Mfg loddab


Da fehlt offensichtlich #include <stdlib.h>.

system(char*) wird in stdlib.h definiert und nicht in iostream.h
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.04.2003, 13:17 Uhr
virtual
Sexiest Bit alive
(Operator)


Ich finde die system "Lösung" zienmlich schlecht:
1. Das Programm clear ist nicht zwingend vorhanden (bei mir zB nicht)
2. Ein system() ist performance technisch für so billige AUfgaben wie Bildschirmlöschen der absolute Overkill, etwa genauso Banane wie unter Windows system("pause") zu machen, um einfach auf einen Tastendruck zu warten (eine in diesem Forum offenbar häufig genutzte Möglichkeit mit widerspenstigen IDEs klar zu kommen!). Das clear macht letztlich nichts anderes als das og. printf -verpackt in der Lösung, die in der FAQ angeoten wird. Ich würde mal schätzen, daß der Overhead der system() Lösung gegenüber der printf Lösung bei 99,5% überflüssig durchlaufenen code liegt.
3. Vielleicht weniger bekannt ist der Umstand, daß system() nicht etwa das Commando direkt ausführt, sondern vielmehr zunächst eine Shell aufmacht, im Zweifel die, welche man mittels der SHELL Environment varibale aufgerufen hat. Dies kann unter Umständen in einer restricted Umgebung oder aber bei entsprechenden Quotas das Program terminieren lassen, bevor auch nur ein Pixel gelöscht wird.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ GNU/Linux ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: